我将transitionend
事件绑定到div1
。当div1
的转换结束时,事件就会运行。没问题。
我遇到了一个特例:
我为此div1
添加了3个段落,当每个段落的转换结束时,div1
的{{1}}事件也会运行。所以transitionend
事件运行了4次。 >。<
在transitionend
的{{1}}事件的侦听器功能正文中,我可以看到div1
!== transitionend
。我觉得这太荒谬了!
Chrome和Firefox都存在这个问题。所以我想这不是浏览器的HTML5规范实现错误。
有人可以解释为什么元素的event.target
事件也可以被这个元素的子元素触发吗?
谢谢。
答案 0 :(得分:10)
这称为事件冒泡。默认情况下,在源元素上调用事件处理程序后,子元素上发生的许多事件将通过父元素冒泡。您可以通过检查event
对象来检测冒泡,也可以通过在源对象上处理事件时停止传播来阻止冒泡。
停止传播是IE与其他浏览器不同的一种方式。在其他浏览器中,您可以调用:
event.stopPropagation()
在IE9之前的IE中:
window.event.cancelBubble = true;