我想要一个事件处理程序,它只执行一次,然后将自己与它绑定的所有元素解除绑定。
我知道但是在使用它时“每个元素.one()
最多执行一次处理程序”。
是否有一种“内置”方法可以将事件处理程序绑定到多个元素,并在其中任何一个元素上执行后自动将其从所有元素中删除?
我想要一个事件处理程序,它只执行一次,然后将自己与它绑定的所有元素解除绑定。
我知道但是在使用它时“每个元素.one()
最多执行一次处理程序”。
是否有一种“内置”方法可以将事件处理程序绑定到多个元素,并在其中任何一个元素上执行后自动将其从所有元素中删除?
miguel camba 已经告诉你检查 wiki 是否解除绑定。正确的解决方案如下:
var handler = function() {
alert('I appear only one time');
$('p').unbind('click', handler);
}
$('p').bind('click', handler);
这将仅解除该处理程序与 click 事件的绑定。
//编辑:
另一种解决方案是命名您的点击事件:
$('p').bind('click.myClickEvent', function() {
alert('I appear only one time');
$('p').unbind('click.myClickEvent');
});