jQuery 中 click事件會累計綁定
例如下列代碼:
aNode.click(function(){
bNode.click(function(){
console.log('haha');
});
});
如果把對bNode的點擊事件綁定到aNode的點擊事件里,那么每點擊一次aNode就會綁定一次bNode,假設在點擊bNode之前點擊了3次aNode,那么點擊bNode之后,控制台會出現三次haha。
因為jQuery中的click事件會累計綁定
為了避免上述情況發生,有兩種解決辦法:
1.應該避免把click事件綁定到其他的例如click,hover等事件中。
上述例子應該改成下面的形式:
aNode.click(function(){
});
bNode.click(function(){
console.log('haha');
});
2.如果必須把click事件綁定在其他的例如click,hover等事件中的話(例如需要用到其他作用域中的變量,尤其是存在listitem這種情況下),需要用到unbind事件