我正在开发一些在其他许多网站上加载的javascript小部件。
当小部件正在加载时,我在链接和按钮上绑定了jQuery live事件。
例如:
$('.my-submit').live('click', function() {...});
...
$('.my-link').live('click', function() {...});
因此,问题是如何仅删除窗口小部件链接和按钮的所有实时事件?
最佳答案
执行此操作的简单方法是绑定名称空间,并删除所有名称空间事件:
$('.my-submit').live('click.myPlugin', function() {...});
然后可以使用名称空间调用
die
:$('.my-submit').die('click.myPlugin'); // only myPlugin events are removed
更好的方法是使用jQuery 1.7中引入的
on
和off
功能。这是处理绑定和取消绑定事件的一种优越得多的方法:$(document).on('click.myPlugin', '.my-submit', function() {...}))
.on('click.myPlugin', '.my-link', function() {...}));
$(document).off('click.myPlugin'); // remove all myPlugin functions