我preventDefault
在这样的元素事件中使用过:
$('#element').click(function (e) {
do stuff...
});
现在,我有一个函数,该函数已经接受了我想使用的参数,preventDefault
但我不确定如何:
<a href="#services" id="services_link" class="services" onclick="sectionScroll('services')">Services</a>
function sectionScroll(id) {
history.pushState(null, null, '#' + id);
$('html, body').animate({
scrollTop: $("#" + id).offset().top
}, 1000);
}
我尝试使用 return false 代替,但这会在单击链接时导致一些闪烁。
如何添加preventDefault
到上述功能?
编辑
我最初的问题是在具有其他参数的函数中使用 preventDefault 。最后我不需要使用内联javascript(看起来没有办法避免它),所以这就是我使用的。我认为它很整洁:
<a href="#services" class="menu-link">Services</a>
$('.menu-link').click(function (e) {
e.preventDefault();
var location = $(this).attr('href');
history.pushState(null, null, location)
$('html, body').animate({
scrollTop: $(location).offset().top
}, 1000);
});