当将事件绑定到两个函数并在一个函数中解除绑定时。
这两个函数都保证由事件触发吗?或者是否应该先调用取消绑定事件的函数,然后解除绑定,然后再调用第二个函数呢?
我做了一个小提琴,看起来这两个函数只调用一次,这正是我所需要的,但它是否保证总是这样呢?http://jsfiddle.net/me2loveit2/8qsdk2tg/
是否有一种方法只将当前正在执行的函数从事件中解除绑定?这样每个函数都会自行解除约束?
$('div').bind('click',function(){
$('div').unbind('click');
$('body').append('Fired First Bind Event!<br/>');
});
$('div').bind('click',function(){
$('body').append('Fired Second Bind Event!<br/>');
});发布于 2014-08-08 17:35:54
两者都将触发,因为事件将继续与已设置在项目上的其他单击相一致。如果您再次单击该项目,则不会触发,因为它们都已被取消设置。
发布于 2014-08-08 17:51:25
你可以试试这个:
$('div').bind('click', first);
$('div').bind('click', second);
function first() {
$('div').unbind('click', first);
$('body').append('Fired First Bind Event!<br/>');
}
function second() {
$('body').append('Fired Second Bind Event!<br/>');
}这将只解除对first函数的绑定。
https://stackoverflow.com/questions/25209116
复制相似问题