Open LuckyWinty opened 4 years ago
利用事件冒泡,去找到匹配的子节点元素
这句话感觉怪怪的
不怪吧
周文婷 邮箱:18814127231@163.com |
---|
签名由 网易邮箱大师 定制
在2020年08月12日 16:21,wyg 写道:
利用事件冒泡,去找到匹配的子节点元素
这句话感觉怪怪的
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
不怪吧 | | 周文婷 邮箱:18814127231@163.com | 签名由 网易邮箱大师 定制 在2020年08月12日 16:21,wyg 写道: 利用事件冒泡,去找到匹配的子节点元素 这句话感觉怪怪的 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
事件冒泡,应该是子元素冒泡到父元素,由里向外; 你这里说“利用事件冒泡,去找到匹配的子节点元素”,我理解成父元素利用事件冒泡,找到匹配的子元素,所以感觉有点怪怪的
我对事件委托的理解同样是把对目标元素的事件,绑定在目标元素的父元素上。当点击这些目标元素时,会通过事件冒泡,从子元素冒泡到父元素,触发在父元素上绑定了的事件。
应用场景我也想到ul里的li事件绑定,但是我想到的是事件委托用于解决“当目标元素需要动态添加到页面中时”的问题。即当前页面并不存在该目标元素。
例如一个ul列表,当前是空的。需要获取数据再以<li>item1</li>
的形式appendChild的话,那么就会先通过事件委托,把事件绑定在父元素ul上,等到ul中有li数据后,点击li,冒泡,触发ul事件。
不知道我的说法是否正确。仅交流观点。
事件委托, 现实意义上讲是指将自己的事务嘱托他人代为处理。js中是 允许我们不必为某些特定的节点添加事件监听器,而是将事件监听器添加到(这些节点的)某个 parent节点上。利用事件冒泡,去找到匹配的子节点元素,然后做出相应的事件响应。是主要用来解决“事件处理程序过多”这个问题的。 经典例子:ul 里面的li的事件绑定。
好处: 1, 简化了初始化的过程,减少了多余的事件处理函数,进而节省了内存。提高性能。 2,新添加的元素还会有之前的事件。
缺点: