我有一个像
这样的插件 $.fn.mycoolplugin
将mousemove
绑定到文档,如
$(document).("mousemove", function() {
//bunch of stuff
});
在选择器上调用该函数后
$('.myclass').mycoolplugin();
我如何取消绑定,因为mousemove
已绑定到文档而我的代码中的其他内容使用mouseenter
和mouseleave
?
答案 0 :(得分:0)
您可以通过调用.unbind
取消绑定任何处理程序:
$(document).unbind("mousemove");
这将取消绑定mousemove
的所有document
处理程序。请注意,这样做可能会破坏插件的功能(存在破坏将mousemove
处理程序添加到document
的任何其他代码/插件的风险。)
答案 1 :(得分:0)
您可以更改插件的绑定方式,然后释放它的附加处理程序,如下所示:
绑定到事件时,请勿使用anoymous函数。而是为事件定义特定的处理程序。这样,当你附上时,你会这样做:
$(document).bind('mousemove',myFuncDelegate);
然后当你需要从范围中移除它时,你解开绑定:
$(document).unbind('mousemove', myFuncDelegate);
这样你只需要取消你的活动。有关详细信息,请参阅http://api.jquery.com/unbind/。
只需在加载时调用bind方法,当您决定卸载它时,请调用unbind方法。