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