一. 事件的传播分为三个阶段
1. 捕获阶段(capture phase)从外向内:在捕获阶段时从最外层的祖先元素(window对象),向目标元素进行事件的捕获,但是默认此时不会触发事件
2. 目标阶段(target phase):事件捕获到目标元素,捕获结束开始在目标元素上触发事件
3. 冒泡阶段(bubble phase)从内向外:事件从目标元素向他的祖先元素传递,依次触发祖先元素上的事件;(通俗来讲就是元素A中有子元素B,B元素的事件触发了,那么A元素相同的事件也会触发)
二. addEventListener的第三个参数
网景 和 微软 曾经的战争还是比较火热的,当时, 网景主张捕获方式,微软主张冒泡方式。后来 w3c 采用折中的方式,平息了战火,制定了统一的标准——先捕获再冒泡。
addEventListener的第三个参数就是为冒泡和捕获准备的.
addEventListener有三个参数:
element.addEventListener(event, function, useCapture)
第一个参数是需要绑定的事件
第二个参数是触发事件后要执行的函数
第三个参数默认值是false,表示在事件冒泡阶段调用事件处理函数;如果参数为true,则表示在事件捕获阶段调用处理函数。
三. 注意事项
父元素跟内嵌的iframe触发的事件毫无关系。比如:点击了iframe中的按钮,事件只会在iframe中传播父元素是收不到事件的,无捕获无冒泡。
标签:触发,捕获,元素,参数,冒泡,事件 来源: https://www.cnblogs.com/dlm17/p/12712360.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。