1

要素に設定されたすべての「オン」イベントを自動的にバインド解除する方法はありますか? 私は解決策を見つけましたが、それが正しいものかどうかはわかりません。

$(document).off('click', 'li').on('click', 'li', function(e){
    e.preventDefault();
    // some stuff goes here
});

編集:

提案されたすべての回答を試しましたが、希望どおりに機能するものはありませんでした。十分な情報を提供しなかったのは私の間違いだったのかもしれません。要点は、すべてのコンテンツがタブのように動的にロードされ、一部のタブはより多くの時間をロードできるということです。

私はこれを試しました $('li').off().on('click', function(){ }); - >動作しませんでした

これも試しました $('li').unbind().on('click', function(){ }); - >動作しませんでした。

4

3 に答える 3

1

unbind()またはを使用off()して、オブジェクトからすべてのイベント ハンドラーを削除できます。

$('#myNode').unbind();

off()jQuery 1.7以降でこれを行うための推奨される方法です(@ Krishnaによって指摘されています)。

$('#myNode').off();

JSFiddle

于 2013-11-01T13:56:49.193 に答える
1

.unbind()これを行うには、パラメーターなしで呼び出すことができます。

$('li').unbind();

ドキュメントから:

引数のない最も単純なケースでは.unbind()、要素にアタッチされたすべてのハンドラーを削除します。

jQuery 1.7 の時点でoff()on()、イベント ハンドラーをバインドおよびバインド解除するための推奨メソッドです。

したがって、要素からすべてのハンドラーを削除するには、次のようにします。

$('li').off();

または特定のハンドラーの場合:

$('p').off('click hover');

イベントハンドラを追加またはバインドするには、次を使用できます

于 2013-11-01T13:59:34.237 に答える
1
$('li').off();//Remove all event handlers from all li elements:
$('li').off('click');//Remove specific event - click

ドキュメント.off()から、

.off() メソッドは、.on() でアタッチされたイベント ハンドラーを削除します。

.unbind()ドキュメントから、

jQuery 1.7 では、要素のイベント ハンドラーをアタッチおよび削除するには、.on() および .off() メソッドが推奨されます。

$('li').unbind(); //removes all event handlers
$('li').unbind('click');//removes specific event - click
于 2013-11-01T14:00:44.353 に答える