【发布时间】:2010-04-15 01:09:25
【问题描述】:
以下函数在下拉菜单中获取目标元素:
function getTarget(evt){
var targetElement = null;
//if it is a standard browser
if (typeof evt.target != 'undefined'){
targetElement = evt.target;
}
//otherwise it is IE then adapt syntax
else{
targetElement = evt.srcElement;
}
//return id of <li> element when hovering over <li> or <a>
if (targetElement.nodeName.toLowerCase() == 'li'){
return targetElement;
}
else if (targetElement.parentNode.nodeName.toLowerCase() == 'li'){
return targetElement.parentNode;
}
else{
return targetElement;
}
不用说,它适用于 Firefox、Chrome、Safari 和 Opera,但不适用于 IE8(我猜在以前的版本中也是如此)。 当我尝试使用 IE8 对其进行调试时,我收到错误“未找到成员”:
targetElement = evt.srcElement;
以及其他后续错误,但我认为这是关键。 任何帮助将不胜感激。
抱歉,由于某种原因,格式不正确。
函数又来了
function getTarget(evt){
var targetElement = null;
//if it is a standard browser get target
if (typeof evt.target != 'undefined'){
targetElement = evt.target;
}
//otherwise it is IE then adapt syntax and get target
else{
targetElement = evt.srcElement;
}
//return id of <li> element when hovering over <li> or <a>
if (targetElement.nodeName.toLowerCase() == 'li'){
return targetElement;
}
else if (targetElement.parentNode.nodeName.toLowerCase() == 'li'){
return targetElement.parentNode;
}
else{
return targetElement;
}
}//结束getTarget
【问题讨论】:
-
是的,这是最简单的方法;)
标签: javascript events internet-explorer-8