0

誰かがこれを説明できますか?.delegerate を使用するようになったので、コードは正常に動作しますが、なぜそれを使用する必要があるのか​​ わかりません。「ajaxDiv」のクラスを持つajaxで作成された要素があります。このように .live を使用すると、アラートが表示されません。この関数の後に書いたすべてのコードも機能しません。

$(".ajaxDiv").live("click", function(event){
    alert('I don\'t work.')
});

しかし、私がこのようにすると、うまくいきます。

$("body").delegate(".ajaxDiv", "click", function(){
    alert('I work like a charm!')
});

ありがとう!

4

3 に答える 3

3

jQuery 1.9を使用していると思いますか?.live()削除されます。

それまでの間、Migrate Pluginを使用して を復元する.live()か、引き続き使用することができます.delegate()

ただし、前方互換性を最大限に高めるには、 の使用を検討して.on()ください。の最初の 2 つの引数を切り替えるだけです。.delegate()

于 2013-05-07T17:45:55.750 に答える
0

.livejQuery 1.9 で削除されました。 .delegateまだ削除されていません。.on実際、非推奨ではありませんが、その使用は(.delegateドキュメント)に取って代わられました。.onイベント委任を含むすべてのバインディングに使用することをお勧めします。

于 2013-05-07T17:49:00.777 に答える
0

Live は jQuery で非推奨になりました。

jQuery 1.7 以降、.live() メソッドは非推奨になりました。.on() を使用して、イベント ハンドラーをアタッチします。古いバージョンの jQuery のユーザーは、.live() よりも .delegate() を使用する必要があります。参考:http ://api.jquery.com/live/

于 2013-05-07T17:44:45.730 に答える