1

新しいjQuery.click()では.submit()、などが次のように置き換えられました。

$('#foo').on('click', function() {
    //
});

ベストプラクティスの観点から。同様のことが起こりました.live()か?それとも、これはまだそれを行うための最良の方法ですか?

$('#foo').live('click', function() {
    //
});
4

4 に答える 4

3

.on()ライブを使用する代わりに、委任を使用するのが正しい方法です

$('staticAncestorElement').on('click','#foo',function(){

});

jQueryのlive()ドキュメントからわかるように

$(selector).live(events、data、handler); // jQuery 1.3+

$(document).delegate(selector、events、data、handler); // jQuery 1.4.3+

$(document).on(events、selector、data、handler); // jQuery 1.7+

于 2012-11-30T21:54:27.640 に答える
3

On()には、他のすべてのバインディングのすべての機能があります。on()動的要素にバインドするには、次のように使用できます

$(document).on('click', '#foo', function() {
    //
});

できれば、の代わりに近い静的要素を使用することをお勧めしますdocument

jQueryが提供している多くのバインディングメソッドに関する私の別の投稿から引用するには:

bind()1.0、1.3、1.4.2、1.7 live()で追加されました。delegate()on()

1.7以降on()が推奨される使用法であり、live()非推奨であり、まったく推奨されていません。1.3bind()の代わりに 使用live()し、1.4.2の時点で使用し、1.7の時点で他のいずれかの代わりに使用している場合。delegate()live()on()

ここで完全な投稿を見ることができます。これlive()には、jQuery1.7以降でこれ以上使用しないことの多くの欠点と理由も記載されています。

于 2012-11-30T21:54:37.727 に答える
1

新しいjQueryでは、.click()、. submit()などが次のように置き換えられました。

それらは交換されませんでした。引き続き機能しますが、現在はへのショートカットになっていclickます。非推奨のメソッドはとです。これで、イベントを委任するためにこれを行うことができます。submitonbindlive

$(closestStaticParent).on('click', 'element', function(){ ... })
于 2012-11-30T21:55:02.220 に答える
1

.clickに置き換えられませんでした.on("click"。ドキュメントを読んでください。

As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers.

.live.onとに置き換えられました.off

のような他の機能.clickは期待どおりに機能し続けます

于 2012-11-30T21:55:33.250 に答える