15

私は古いコードを見ています。ajaxで追加される要素には、多くのlivequeryコードがあることがわかります。新しいバージョンのjqueryではlivequeryはもう必要ありませんか?どのバージョン以降は必要ないのか誰かが知っていますか?

$("#somediv").livequery(function(){
    $(this).click(function(){

    });
});
4

2 に答える 2

15

livequeryとはまったく異なる概念です.live()

この.live()メソッドは、イベント委任を使用して、ページ上の任意の場所で発生するイベントを処理します。

livequeryDOMの変更が発生すると(jQueryメソッドを介して)ハンドラーを呼び出します。

以下の例では、要素がclass="some_class"DOMに追加されると(またはクラスが要素に追加されると)、最初のハンドラーが実行されます。削除すると、2番目。

$('.some_class').livequery( function() {

       // apply a plugin to the element
    $(this).somePlugin();

}, function() {

    // clean up after the element was removed

});

の実際の必要性はほとんどないはずlivequeryですが、DOMの変更に応答する必要があり、それらの変更を引き起こしているjQueryを制御できないというまれなケースでは、これが役立つ場合があります。

于 2011-10-06T14:21:39.417 に答える
5

on()を使用して、イベントを親または本体にアタッチする必要があります。元 :

$('#obj').livequery('click', function() { ... });
$('#obj').livequery(function() { ... });

なる

$('body').on('click', '#obj', function() { ... });
$('body').on('DOMNodeInserted','#obj', function() { ... });

DOMNodeInsertedはIE9+であることに注意してください

于 2016-12-22T14:16:05.057 に答える