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事件