首页 > Web开发 > 详细

js的事件代理/委托

时间:2020-03-06 18:18:03      阅读:65      评论:0      收藏:0      [点我收藏+]

=================
关于事件代理/委托(delegate), 内容很多, 就看这篇文章就好了. https://www.cnblogs.com/liugang-vip/p/5616484.html 以下内容完全是来自它的:

  • 事件委托, 为什么要使用它? 其实对多个 同级的元素 使用 for 循环一样的可以处理它们上面绑定的相同事件, 而且以前还就是这样用的. 但是这样做有几个问题:
    一个是 会多次访问dom元素, (造成浏览器多次重绘??), 造成内存中存在多个对象句柄, 总之就是性能很老火...
    第二个就是for循环对新加入进来的子元素, 并不会自动绑定之前的for里面的事件.
    所以 , 为了提升性能, (如果在它们的共同 父元素上绑定 某个鼠标事件)就可以帮所有的子元素处理同一个事件了,这样就只需要访问一次dom元素, 二是对新加入的子元素一样的道理可以实现加入就有事件的好处/

  • 事件代理, 的基础,是 由于js的冒泡机制...所有子元素的 某种相同类型的鼠标事件 由于冒泡, 都可以被传递到父元素上来....就可以由父元素帮它们处理. 所以事件委托: 是多个子元素 委托它们的父元素 来实现某种事件. 即委托是绑定在 父元素上的, 即父元素就是那个 前台姑娘了.

  • 要知道, 任何机制 都不是 无所不能的, 任何机制都主要是用来 解决某一类的 问题的. 所以 , 事件委托, 也主要是用来处理 多个子元素上 绑定 相同类型的事件时, 或者说, 委托机制是最适合用来 处理 for循环绑定同一类型鼠标事件的.其他地方就不一定适合委托.
    同样的道理, 今后如果遇到这种 for循环绑定事件的时候, 就尽量使用委托机制了(其实遇到的时候还是很多的). 这时候, 可能需要 创建一个(即使从语义上可能不需要的) 共同的父元素来包裹它们.

  • 最后并不是所有的 事件都适合用 委托, 就像前台姑娘适合 委托( 收快递, 定盒饭), 但不一定适合委托 带孩子等事情了....

js的事件代理/委托

原文:https://www.cnblogs.com/bkylee/p/12428026.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!