在我能找到的几乎所有示例/模板脚本中,我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'); });
那我错过了什么?
它在所示的两个具体例子中没有区别.把它放在你喜欢的地方:)
最终获得它的通常原因是当它取代时return false;
,通常是返回必须的地方.return false
是e.preventDefault()
和 两者的捷径e.stopPropagation()
.
另外要记住的是当你需要有条件地阻止它时,在这种情况下,它preventDefault()
会在中间(if
等等):)