IE8和Firefox中的event.toElement?

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

我无法在Firefox或IE8中find类似的属性。

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

任何意见,将不胜感激。

用这个解决我的问题

event.target 

在Firefox中是event.relatedTarget https://developer.mozilla.org/en/DOM:event.relatedTarget#1003983

事实certificate,IE8确实有event.toElement ,所以我不知道我在那里想什么…

事实上event.currentTarget应该在Chrome,Firefox和IE中工作

当我使用Jay的回答时,遇到了一个问题, event.target on firefox指向了event.toElement在Chrome上的目标的父元素。
在查看事件obj后,我发现event.originalEvent.target ,它在firefox和chrome上都很好用。

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

也就是说,如果你点击这个事件触发的元素中的一个子元素,子元素将成为“目标”并存储在这个属性中。

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

请注意,我只testing了这个11,所以旧版本可能不支持这个。

所以为了支持firefox ie和chrome(可能还有其他的,需要一个polyfill,例如:

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

哪里是event

代码容易遵循..

 enter code here if(typeof evt.toElement !== "undefined") { evt.toElement.classList.toggle('done'); } else if(typeof evt.relatedTarget !== "undefined") { if(evt.relatedTarget !== null) { evt.relatedTarget.classList.toggle('done'); } else if(typeof evt.currentTarget !== "undefined") { evt.currentTarget.classList.toggle('done'); } else { console.log("s_f_li_clickexception..."); } //endif } //endif