5

ページの要素にhoverIntentプラグインを追加しようとしていますが、一部の要素は後でDOMに追加されるため、プラグインを将来の要素にもバインドする必要があります。どうやってそれをしますか?SOで同じ質問を数回見ましたが、明確な解決策はありませんか?

4

4 に答える 4

2

これを行うための jQuery のサポートはありません。これは、プラグイン自体がサポートする必要があるものです。最も一般的なアプローチは、新しいコンテンツを追加した後にプラグインを単純に再初期化することです。通常は問題ありません。

別のオプションは、liveQueryプラグインを使用して、次のようにすることです。

$('yourSelector').livequery(function () {
    $(this).hoverIntent({
        // blah
    });
});
于 2012-07-05T10:30:52.963 に答える
0

これを実現する最善の方法は、新しい要素をページに追加するときにカスタム イベントを発生させることです。このイベントのサブスクライバーは、適切な hoverIntent 初期化子を呼び出すことができます。

ミューテーション オブザーバーの形でより多くのネイティブ サポートが提供される予定ですが、ブラウザーのサポートは現在ほとんどありません。

イベントのリッスンDOMSubtreeModifedは信頼できず、重大なパフォーマンスの問題を引き起こします。

于 2012-07-05T10:30:51.773 に答える
0

jquery 構造を変更してみてください。

ABC = {
   init: function() {//all function names goes here
       ABC.myFunction1();
       ABC.myFunction2();
       ABC.myFunction3();
   },
   myFunction1: function() {
     //code
   },
   myFunction2: function() {
     //code
   },
   myFunction3: function() {
     //code
   }//dont put comma last one
}

$(function() {
    ABC.init();//calls all functions after everything is initialized and ready.
});
于 2012-07-05T10:47:02.947 に答える