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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM