jQueryアニメーションメソッドを使用しようとしていますが、正しく動作していません。 私は自己呼び出し関数と関数宣言の両方を使用していますが、まだ動作していません。 助けを前もってありがとう。jQueryのアニメーションメソッドが機能していませんか?
<ul id='menu-list'>
<li><a href="index.html">Home</a></li>
<li><a href="#" class='page-link' id='about' data-value='services'>About</a></li>
<li><a href="#" class='page-link' data-value='team'>Team</a></li>
<li><a href="#" class='page-link' data-value='search'>Search</a></li>
<li><a href="#" class='page-link' data-value='contact'>Contact</a></li>
</ul>
<div id="main-services" class='services'></div>
<div id='services-container' class='search'></div>
<div id='team' class='team'></div>
<div id='contact' class='contact'></div>
`enter code here`
(function() {
var links = $('.page-link');
for (var i = 0; i < links.length; i++) {
links[i].onclick = function() {
var data = this.getAttribute('data-value')
$('body').animate({
scrollTop: $('.' + data).offset().top
}, 800);
};
}
})();
どのHTMLが動作していますか?どのようにHTMLに読み込まれますか?ログにログを追加するとどうなりますか? 'links.length'とは何ですか?リンクをクリックするとイベントハンドラが起動しますか? – Quentin
Jqueryを使用すると、なぜインラインイベントハンドラを使用していますか?そして、普通の関数の中の 'this'は、クリックされた要素ではなく' window'を指します。 –
@RajaprabhuAravindasamy - いいえ。イベントハンドラとして呼び出される関数の中の 'this'の値は、関数がバインドされる要素です。 – Quentin