1
|
需要重新绑定事件时,可以先把事件off掉,然后重新on
|
1
2
3
4
5
6
7
8
|
function
foo() {
xxxx;
}
$(
"#a"
).on(
"click"
, foo);
//需要重新绑定事件时,可以先把事件off掉,然后重新on
$(
"#a"
).off(
"click"
, foo).on(
"click"
, foo);
// 其实这样子有些必须要传递函数的方法是不行的,如$("#a").off("click",foo,function(e){});
解决方案:
在会重复绑定该事件的方法中做以下判断:
if($("#a").__ta.click instanceof Object) continue;
也就是说如果一个元素已经绑定了该事件,你在这个元素的下级就能通过调试工具查看到这个事件,我用的是jsPlumb
所以就是.__ta.click,如果这个元素已经绑定了,那么.__ta.click就是一个Object,否则为undefined,所以通过
判断就可以阻止程序的再次绑定,如绑定了多次,效果如:一旦触发事件,事件函数会被多次执行。
|