js中事件委托的優缺點


優點:

  1. 減少事件注冊,節省內存。比如,

    • 在table上代理所有td的click事件。
    • 在ul上代理所有li的click事件。
  2. 簡化了dom節點更新時,相應事件的更新。比如

    • 不用在新添加的li上綁定click事件。
    • 當刪除某個li時,不用移解綁上面的click事件。

缺點:

  1. 事件委托基於冒泡,對於不冒泡的事件不支持。
  2. 層級過多,冒泡過程中,可能會被某層阻止掉。
  3. 理論上委托會導致瀏覽器頻繁調用處理函數,雖然很可能不需要處理。所以建議就近委托,比如在table上代理td,而不是在document上代理td。
  4. 把所有事件都用代理就可能會出現事件誤判。比如,在document中代理了所有button的click事件,另外的人在引用改js時,可能不知道,造成單擊button觸發了兩個click事件。


免責聲明!

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



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