5

私は次のようなプラグインを持っています

$.fn.mycoolplugin

mousemove次のようなドキュメントにバインドします

$(document).("mousemove", function() {
    //bunch of stuff
});

セレクターで関数を呼び出した後

$('.myclass').mycoolplugin();

mousemoveはドキュメントにバインドされており、コード内のその他のものはmouseenterandを使用しているため、これをバインド解除するにはどうすればよいmouseleaveですか?

4

2 に答える 2

0

を呼び出すことで、任意のハンドラーをバインド解除できます.unbind

$(document).unbind("mousemove");

mousemoveこれにより、 からすべてのハンドラがアンバインドされますdocumentmousemoveこれを行うと、プラグインの機能が壊れる可能性があることに注意してください (ハンドラーを に追加する他のコード/プラグインが壊れるリスクがありますdocument)。

于 2011-08-17T17:38:00.360 に答える
0

プラグインのバインド方法を変更し、次のように接続されているハンドラーを解放します。

  1. すべての初期イベント (マウスムーバーなど) のバインドを担当する関数を作成します。
  2. すべての初期イベントのアンバインドを担当する関数を作成します。
  3. イベントにバインドするときは、無名関数を使用しないでください。代わりに、イベントの特定のハンドラを定義してください。そうすれば、アタッチするときは次のようになります。

    $(document).bind('mousemove', myFuncDelegate);

そして、スコープから削除する必要がある場合は、バインドを解除します。

 $(document).unbind('mousemove', myFuncDelegate);

そうすれば、イベントの添付を解除するだけです。詳細については、 http://api.jquery.com/unbind/を参照してください。

ロード時に bind メソッドを呼び出すだけで、アンロードする場合は unbind メソッドを呼び出します。

于 2011-08-17T17:39:11.817 に答える