【发布时间】:2015-12-02 15:30:19
【问题描述】:
在我能找到的几乎所有示例/模板脚本中,我在函数末尾看到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();
});
在我看来,这个想法是“立即停止默认行为,然后做我们必须做的任何事情”,如下所示:
$('.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');
});
那么我错过了什么?
【问题讨论】:
-
stop immediately the default behavior事件被放入队列中,因此将它放在处理程序的顶部或底部没有区别。但是请参阅 TrueBlueAussie 的答案,如果由于某种原因您也想停止传播,通常将其放在底部更方便,使用速记方式return false;。就是说,我总是把它放在首位只是为了便于阅读,但这是我自己的看法 -
@A.Wolff 所以要明确一点,在这种情况下,我们不会冒
event.preventDefault()运行“为时已晚”的风险吗?你能详细说明Events are put in queue的意思吗?
标签: jquery preventdefault