关于事件冒泡

来源:19-1 事件-知识点

BLUE啊BLUE

2017-07-11

关于事件冒泡的处理过程,总感觉哪里有点怪怪的(有说不清的疑惑)。例如使用代理,(拍照才发现书法有点差)。点击链接时,由于事件冒泡,会触发div上绑定的事件(是这个样子吧?)。如果我在里面添加阻止事件冒泡,此事件依然被触发。

写回答

2回答

双越

2017-07-11

你是将事件绑定到了 div 上,你再组织冒泡,还有啥用

0
0

小王子抓猫咪

2017-11-04

呵呵,老师这回答我也是醉了,完全没看懂这家伙说的意思吧。

人家说的是,在div的处理事件程序中添加e.stopPropagation()代码之后,点击a标签依然会弹出a标签的InnerHTML内容。


正确解答应该是:

如果你想阻止a标签的冒泡,请单独给a标签添加事件处理函数,同时在里面使用e.stopProgation()代码。

你在div的事件绑定处理函数中添加的代码都只是在div这个层次上被执行。这个地方涉及到事件触发流程。

顺序是 事件捕获,事件目标,事件冒泡三个阶段。你这里addEventListener使用的useCapture默认是false。那么你监听的就是冒泡阶段,而冒泡阶段是从低往上,也就是先经过了事件目标a再到div。那么你不在a的事件处理中阻止的话,自然就会冒泡到div。而你在div里阻止的话,自然就不会冒泡到body,document之上。

0
0

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程