IE中的select选项不能使用onmouseover事件

Mem*_*eak 6 javascript internet-explorer javascript-events

更新的代码:

function getElements()
  {
  var x=document.getElementsByTagName("option");

var el = document.getElementById('selectDept');
el.onmouseover = function( myevent ) {
   // event = event || window.event.srcElement;
if(myevent && myevent.target){
    if ( myevent.target.tagName.toLowerCase() == 'option' ) {
        alert(myevent.target.innerHTML);
    }
}
else if(window.event)
{
   if ( window.event.srcElement.tagName.toLowerCase() != 'select' ) {
        alert('s');
    }

}
};
Run Code Online (Sandbox Code Playgroud)

但仍然无法在IE中工作.

scu*_*ffe 7

IE不支持选项元素上的事件.您可以尝试@meder说要在父选择上添加处理程序,然后检查事件以查看哪个选项被鼠标悬停.

PS这些是IE6中的已知错误(并在IE7和IE8 beta测试中报告 - 并且因为修复而被拒绝):-(

也许IE9会支持他们?


med*_*iev 4

难道你还不能在整个选择上设置一个 mouseover 事件处理程序,并在目标是选项元素时将事件属性作为目标,执行 X 操作吗?

var el = document.getElementById('foo')
el.onmouseover = function( event ) {
    event = event || window.event;
    var target = event.target ? event.target : event.srcElement;
    if ( target.nodeName.toLowerCase() === 'option' ) {
        alert('option');
    }
}
Run Code Online (Sandbox Code Playgroud)

更新的代码:

http://jsbin.com/olusi