天天看點

jq點選事件多次響應_click事件多次觸發 jQuery

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

jq點選事件多次響應_click事件多次觸發 jQuery