powerdong / myProblems

我用到了,你可能用到
0 stars 1 forks source link

事件委托的优缺点 #23

Open powerdong opened 4 years ago

powerdong commented 4 years ago

优点:

  1. 减少事件注册,节省内存,如:
    • table可以代理所有td的click事件
    • ul代理所有li的click事件
  2. 减少了dom节点更新的操作,处理逻辑只需在委托元素上进行,如:
    • 新添加的li不用绑定事件
    • 删除li时,不需要进行元素与处理函数的解绑

缺点:

  1. 事件委托基于冒泡,对于onfoucsonblur 等事件不支持
  2. 层级过多,冒泡过程中,可能会被某层阻止掉(建议就近委托)

总之一切都是基于冒泡的,只要事件不支持冒泡或者中途有 event.stopPropagation()等,那么委托就会失败,所以并不适用于直接在document上进行委托。