event.preventDefault()总是在函数结束之前

时间:2015-12-02 15:30:20

标签: jquery preventdefault

在我能找到的几乎所有示例/模板脚本中,我在函数末尾看到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');
});

那么我错过了什么?

1 个答案:

答案 0 :(得分:18)

在所示的两个具体示例中没有区别。把它放在你喜欢的地方:)

最终获得它的通常原因是它取代return false;,因为通常是返回必须的地方。 return falsee.preventDefault() e.stopPropagation()的快捷方式。

要记住的另一件事是当你需要有条件地阻止它时,preventDefault()位于中间(if等):)