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

来源:3-3 同组别数据获取

epi

2015-11-10 10:58

e.stopPropagation();

写回答 关注

3回答

  • 阳星
    2016-01-16 11:23:33

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

  • 阿辉2
    2015-11-30 21:06:30

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

  • YibuMe
    2015-11-22 11:26:24

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


JS插件开发之LightBox图片画廊(上)

图片画廊插件开发综合演练,快来加入我们的课程吧

27071 学习 · 81 问题

查看课程

相似问题