取消绑定jQuery插件?

时间:2011-08-17 17:33:23

标签: jquery bind unbind

我有一个像

这样的插件

$.fn.mycoolplugin

mousemove绑定到文档,如

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

在选择器上调用该函数后

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

我如何取消绑定,因为mousemove已绑定到文档而我的代码中的其他内容使用mouseentermouseleave

2 个答案:

答案 0 :(得分:0)

您可以通过调用.unbind取消绑定任何处理程序:

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

这将取消绑定mousemove的所有document处理程序。请注意,这样做可能会破坏插件的功能(存在破坏将mousemove处理程序添加到document的任何其他代码/插件的风险。)

答案 1 :(得分:0)

您可以更改插件的绑定方式,然后释放它的附加处理程序,如下所示:

  1. 您创建的函数负责绑定所有初始事件(例如mousemover等)
  2. 您创建的函数负责解除所有初始事件的绑定。
  3. 绑定到事件时,请勿使用anoymous函数。而是为事件定义特定的处理程序。这样,当你附上时,你会这样做:

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

  4. 然后当你需要从范围中移除它时,你解开绑定:

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

    这样你只需要取消你的活动。有关详细信息,请参阅http://api.jquery.com/unbind/

    只需在加载时调用bind方法,当您决定卸载它时,请调用unbind方法。