我正在开发一些在其他许多网站上加载的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中引入的onoff功能。这是处理绑定和取消绑定事件的一种优越得多的方法:

$(document).on('click.myPlugin', '.my-submit', function() {...}))
           .on('click.myPlugin', '.my-link', function() {...}));

$(document).off('click.myPlugin'); // remove all myPlugin functions

09-25 16:14