1

私は問題を抱えていました

$('.myElement').on('hover',function({...});

両方とも機能しなかった、を試し.on('hover'た後、試しました。 動作しました..しかし、私はjQuery 1.8.3を使用していますが、これはなぜですか?これが私が使っていたコードです:.hover().live('hover',).live('hover',)

jQuery

$('.myElement > a').live('hover',function(event) {
    //do stuff
}

HTML

<div class="myElement">
    <a href="#" />
</div>

時々、私はばかげた間違いをしているだけなのか、それとも言語が狂っているだけなのか疑問に思います。

4

4 に答える 4

2

on()live()2番目のパラメーターで委任セレクターを渡す場合にのみ機能します。あなたの場合、プライマリセレクターはあなたの.myElement要素が追加されているコンテナ要素であり、デリゲートは.myElement次のようになります:

$('.parentOfMyElement').on('hover', '.myElement', function() {
    // do stuff...
});
于 2013-01-16T13:17:40.023 に答える
0

他のすべてのメソッド(.live()を除く...これが非推奨になった理由の1つです)に関しては、.on()は既存の要素でのみ機能します。イベントハンドラーをまだ存在しない要素にもバインドする場合は、より高いレベルの要素からの委任を使用する必要があります。

たとえば、「。myElement」は「.myContainer」のサブ要素であり、次のことができます。

$('.myContainer').on('hover', '.myElement', function(e) {
    ...
});
于 2013-01-16T13:18:04.813 に答える
0

これを試して。

$('body').on('hover', '.myElement', function...);

本文は、イベントを監視する必要がある任意のコンテキストまたはコンテナを参照できます。

于 2013-01-16T13:18:16.740 に答える
0

これを試して

$('.myElement > a').hover(function(event) {
//do stuff
  alert('hover');
});

この例を参照してください

ご挨拶。

于 2013-01-16T13:22:51.510 に答える