私は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);
});