子元素上触发的TransitionEnd监听器

15

我在一个 div 上添加了一个 transitionend 事件监听器。这个 div 有一些子元素,它们的某些元素正在过渡中。我希望 transitionend 事件仅为我添加它的元素触发,这是一个 bug 吗?还是预期行为?如何让它仅在我添加监听器的元素上触发?

2个回答

26

默认情况下,事件会冒泡,这意味着它们将被“传递”到父元素,直到它们达到body或处理程序来停止它们。

你可以选择:

  • 通过事件目标进行过滤确保它是你要定位的元素。
  • 在子元素上监听事件,并对它们使用event.stopPropagation()。这样,它们就不会再经过父元素进行冒泡。

如果您向我们展示一些代码,根据您当前的实现,我们可以更轻松地帮助您。


谢谢这些选项,很不错!我选择了event.stopProp。 - Noitidart

6

这个过程被称为事件冒泡。你可以通过事件处理程序检测冒泡,或者通过停止传播来阻止冒泡。你可以通过以下方式来实现:

event.stopPropagation()

在IE 9及之前版本中, 你可以这样做:
window.event.cancelBubble = true;

请详细查看这里

1
请不要介意,我选择了另一个人的答案,因为他先发布了。但是您提供的IE9信息和解释非常感谢。 - Noitidart
3
没关系,朋友。重要的不是接受答案,而是它是否对你有所帮助,我很高兴它能帮到你。祝你编码愉快!:) 干杯! - Avinash Babu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接