2

jQueryUIウィジェットファクトリを使用してjQueryプラグインを構築しています。

私のプラグインはカスタムイベントをウィンドウにバインドします...

_subscribe: function() {
  $(window).on("dragger.started", function() { ... });
}

プラグインの特定のインスタンスが破棄されたときに、これらのイベントを削除するにはどうすればよいのでしょうか。使用する場合...

destroy: function() {
  $(window).off("dragger.started");
}

...その後、すべての「dragger.started」イベントが削除されるため、ページ上のプラグインの他のインスタンスが台無しになります。

プラグインのインスタンスに関連付けられているイベントのみを破棄するための推奨される方法は何ですか?

(事前に)あなたの助けに感謝します。

4

2 に答える 2

2

イベント内に複数の名前空間をバインドできます。したがって、インスタンスに次のようなIDを割り当てます

//this.id = 'dragger_' + guid_or_static_count
$(window).on("dragger.started." + this.id, function() { ... });

以降

$(window).off('dragger.' + this.id);

このフィドルを見る

于 2012-12-17T22:28:57.490 に答える
0

インスタンスを取り除くために何を使用していますか?jQuery remove()は、バインドされたイベントを削除すると思います。

于 2012-12-17T02:01:53.033 に答える