我注意到在 Chrome 和 IE9 中,对于onmouseout
事件有一个event.toElement
属性(因此您可以确定鼠标现在指向哪个元素)。
我在 Firefox 中找不到类似的属性。
不幸的是我不能使用 jQuery 来处理这些事件,我必须使用原生 js。
任何意见,将不胜感激。
我注意到在 Chrome 和 IE9 中,对于onmouseout
事件有一个event.toElement
属性(因此您可以确定鼠标现在指向哪个元素)。
我在 Firefox 中找不到类似的属性。
不幸的是我不能使用 jQuery 来处理这些事件,我必须使用原生 js。
任何意见,将不胜感激。
而不是 event.toElement 你应该使用这个:
event.target
在 Firefox 中是event.relatedTarget
https://developer.mozilla.org/en/DOM:event.relatedTarget#1003983
我在使用 Jay 的回答时遇到了一个问题,event.target
在 Firefox 上指向event.toElement
chrome 上目标的父元素。
在查看事件 obj 后,我发现event.originalEvent.target
它在 Firefox 和 chrome 上都运行良好。
实际上event.currentTarget
应该适用于 Chrome、Firefox 和 IE
截至 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!"; }
哪里e
是event