動態添加DOM時,綁定的click事件會重復執行


最近因為業務需求,需要重寫window的alert和confirm彈窗,但是每次顯示的提示按鈕不相同,所有每次打開的彈窗都需要重寫生成,但是對於相同的按鈕會保留上次創建時的click事件,所以當你創建了多少次彈窗,你下次單擊該按鈕就會執行多少次,面對這個問題有兩個解決方法:

1,每次關閉彈窗時都將其銷毀,destory() 方法,將創建的dom從document中remove()掉;

2,將一些公共的btn設置為公用的dom,不需要每次都進行創建,這樣在下一次為其btn綁定click事件時,unbind('click')上一次的click事件,就不會被執行多次了。

   建議不要通過  $(ele).on('click',function(){})這種方式綁定事件。 這種方式會將原來的方法添加到新方法中,就會出現執行多次;

  處理方式是   $(ele).unbind('click').click(function(){});


免責聲明!

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



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