IE8 和 Firefox 中的 event.toElement?

IT技术 javascript dom cross-browser dom-events
2021-03-19 03:59:37

我注意到在 Chrome 和 IE9 中,对于onmouseout事件有一个event.toElement属性(因此您可以确定鼠标现在指向哪个元素)。

我在 Firefox 中找不到类似的属性。

不幸的是我不能使用 jQuery 来处理这些事件,我必须使用原生 js。

任何意见,将不胜感激。

6个回答

而不是 event.toElement 你应该使用这个:

event.target
这正是我所需要的。我是 javascript 新手,所以我不知道为什么我什至使用“toElement”可能是我在某处看到的一些代码示例。目标显然是我首先想要的。
2021-05-03 03:59:37
这个答案对我有用。currentTarget 和 relatedTarget 可以给你不同的结果。例如,在 <a> 的点击事件中,当 <ul><li><a></a></i></ul> e.target 给我 <a>(就像 e.toElement),但是 currentTarget而relatedTarget 给了我整个<ul>。
2021-05-11 03:59:37
目标不是鼠标离开的元素吗?toElement 将是鼠标离开的元素,所以答案是错误的?
2021-05-16 03:59:37
这是最好的答案。
2021-05-17 03:59:37
如果您还想获得 Webkit/Chrome 的 localName gist.github.com/aubreypwd/748ba5958ae3fde694a2,这是一个很好的例子
2021-05-17 03:59:37
请使用 Azam Alvi 的回答 .target 是首选。
2021-04-26 03:59:37
由于您意识到IE确实有event.toElement,请从问题和答案中删除它的参考以避免混淆......这样做不会使任何其他现有答案无效。
2021-05-06 03:59:37
仅供参考 - IE11 似乎没有 event.toElement
2021-05-10 03:59:37

我在使用 Jay 的回答时遇到了一个问题,event.target在 Firefox 上指向event.toElementchrome 上目标的父元素
在查看事件 obj 后,我发现event.originalEvent.target它在 Firefox 和 chrome 上都运行良好。

实际上event.currentTarget应该适用于 Chrome、Firefox 和 IE

是的,为什么 FF 没有 toElement :(
2021-05-03 03:59:37
event.currentTarget 正在返回事件所属的元素,而不是正在与之交互的元素。例如,您可以使用事件冒泡在父元素上定义事件,这样您就不必将类似的事件处理程序附加到所有子元素。
2021-05-09 03:59:37

截至 2014 年,IE11 不支持toElement,我查看了事件对象,发现target与 toElement 具有相同的数据。

也就是说,如果您单击触发此事件的元素内的子元素,则该子元素将成为“目标”并存储在此属性中。

触发事件的元素存储在currentTarget属性中。

请注意,我仅针对 ie 11 对此进行了测试,因此旧版本可能不支持此功能。

因此,为了支持 firefox ie 和 chrome(可能还有其他的,polyfill 是必要的,例如:

var target = e.toElement || e.relatedTarget || e.target || function () { throw "Failed to attach an event target!"; }

哪里eevent

与仅使用 e.target 相比,这有什么好处吗?
2021-05-13 03:59:37