为了账号安全,请及时绑定邮箱和手机立即绑定

事件委托的原理是根据冒泡,为什么还要在事件委托里阻止冒泡有何意义?e.stopPropagation();

e.stopPropagation();

正在回答

3 回答

把click事件委托给body可以提高效率,并不是要body来触发click事件(当然body也可以通过冒泡行为当 event.currentTarget.nodeName ==="body" 时触发,而实际上我们需要阻止冒泡行为来阻止body触发click),而是要匹配到body里面的子元素event.target来触发click事件,delegate(body子元素,事件类型,fn)方法默认有冒泡行为,因此需要阻止冒泡。

0 回复 有任何疑惑可以回复我~

这个绝对有问题,jquery我不知道,在js里采用事件委托,然后采用e.stopPropagation() 阻止冒泡的话,阻止的是委托对象(在这个案例里是body)的冒泡,而不可能阻止到e.target那个对象的冒泡,因为body事件的触发就是e.target冒泡才触发的,已经发生的事怎么还可以阻止呢。我用原生js的事件委托完全没有办法做到,在此表示质疑课程中e.stopPropagation() 使用的正确性。

0 回复 有任何疑惑可以回复我~

e.stopPropagation() 是根据事件委托找到目标对象 ,阻止目标对象的事件冒泡


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

事件委托的原理是根据冒泡,为什么还要在事件委托里阻止冒泡有何意义?e.stopPropagation();

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信