event.preventDefault() 总是在函数结束之前
event.preventDefault() always just before the end of the functions
在我能找到的几乎所有示例/模板脚本中,我都在函数末尾看到 event.preventDefault();
,如下所示:
$('.navbar-nav li a').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
在我看来,想法是"stop immediately the default behavior then do whatever we have to do",像这样:
$('.navbar-nav li a').bind('click', function(event) {
event.preventDefault();
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
});
那我错过了什么?
显示的两个具体示例没有区别。放在你喜欢的地方:)
将它放在末尾的通常原因是它取代了 return false;
,因为那通常是 return 必须出现的位置。 return false
是 e.preventDefault()
和 e.stopPropagation()
.
的快捷方式
另一件要记住的事情是当你需要有条件地停止它时,在这种情况下 preventDefault()
位于中间(if
等):)
在我能找到的几乎所有示例/模板脚本中,我都在函数末尾看到 event.preventDefault();
,如下所示:
$('.navbar-nav li a').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
在我看来,想法是"stop immediately the default behavior then do whatever we have to do",像这样:
$('.navbar-nav li a').bind('click', function(event) {
event.preventDefault();
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
});
那我错过了什么?
显示的两个具体示例没有区别。放在你喜欢的地方:)
将它放在末尾的通常原因是它取代了 return false;
,因为那通常是 return 必须出现的位置。 return false
是 e.preventDefault()
和 e.stopPropagation()
.
另一件要记住的事情是当你需要有条件地停止它时,在这种情况下 preventDefault()
位于中间(if
等):)