我有一些对象创建一些附加到文档的事件。它们是常见的事件,如mousemove,mousedown等。
然后我想制作$(document).unbind('mousemove')
并且它可以,但它可能会使插件的最终用户创建的某些事件崩溃,或者使用某些外部代码导致冲突。
是否可以删除在某个范围内声明的所有事件?
像:
$.fn.somePlugin = function() {
//here begins our scope
//declaring a lot of events
//some stuff
//remove events of this scope leaving other of same type untouched
}
还是有其他方法来管理事件组吗?
答案 0 :(得分:3)
您可以使用namespaced event处理程序
实施例
$(el).on('click.myplugin', function(){...})//or any eventname.pluginname
然后
$(el).off('click.myplugin')
演示:Fiddle
答案 1 :(得分:0)
将对函数的引用传递给off
方法。
var foo = function() {
// Code to handle some kind of event
};
// ... Now foo will be called when paragraphs are clicked ...
$( "body" ).on( "click", "p", foo );
// ... Foo will no longer be called.
$( "body" ).off( "click", "p", foo );