Javascript 如何知道事件是否仍在冒泡?

Javascript 如何知道事件是否仍在冒泡?,javascript,html,event-bubbling,Javascript,Html,Event Bubbling,我有一个带有一些嵌套元素的SVG元素。我在SVG元素上附加了一个mouseout处理程序。当我在SVG元素的中间按下鼠标并将其移出SVG元素时,我得到以下事件列表: down out <path ...> out <circle r="39.5"> out <circle r="40"> out <circle r="49.5"> out <svg ...> up down 出来 出来 出来 出来 出来 向上的 这意味着鼠标首先离开

我有一个带有一些嵌套元素的SVG元素。我在SVG元素上附加了一个
mouseout
处理程序。当我在SVG元素的中间按下鼠标并将其移出SVG元素时,我得到以下事件列表:

down
out <path ...>
out <circle r="39.5">
out <circle r="40">
out <circle r="49.5">
out <svg ...>
up
down
出来
出来
出来
出来
出来
向上的
这意味着鼠标首先离开路径,然后离开三个同心圆,最后离开SVG元素。我只对最后一个事件感兴趣,它会影响元素,元素附带了处理程序。SVG元素会获取所有其他事件,因为它们会冒泡到SVG元素


我怎么知道事件是否已冒泡?如何忽略那些不影响元素的事件(该元素已附加处理程序)?

您可以使用
event.target
属性查看哪些元素实际触发了事件

$('myDiv')。在('click',函数(e)上{
console.log(e.target.id);
});
#myDiv{
背景色:红色;
宽度:100px;
高度:100px;
}

点击我

您可以使用
event.target
属性查看事件实际触发了哪些元素

$('myDiv')。在('click',函数(e)上{
console.log(e.target.id);
});
#myDiv{
背景色:红色;
宽度:100px;
高度:100px;
}

点击我

似乎有必要检查
target
是否与
currentTarget
相同。另一方声称,这可以通过
==
实现。因此,我现在在mouseout处理程序中使用以下条件来跳过事件仍然冒泡的情况:

svg.onmouseout = function (event) {
  if (event.target === event.currentTarget) {
    // Do what needs to be done after the mouse leaves the SVG element.
  }
};

似乎有必要检查
target
是否与
currentTarget
相同。另一方声称,这可以通过
==
实现。因此,我现在在mouseout处理程序中使用以下条件来跳过事件仍然冒泡的情况:

svg.onmouseout = function (event) {
  if (event.target === event.currentTarget) {
    // Do what needs to be done after the mouse leaves the SVG element.
  }
};

如何比较元素?您可以给它们ID,例如,并比较它们如何比较元素?您可以给它们ID,例如,并比较它们