2009-09-21 5 views
5

Aktualisierte Code verwenden:kann nicht Onmouseover Ereignis bei der Auswahl der Option in IE

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'); 
    } 

} 
}; 

aber noch nicht in IE arbeiten.

Antwort

3

Können Sie nicht immer noch einen Mouseover-Event-Handler auf die gesamte select setzen und die event -Eigenschaft als Ziel wählen, wenn das Ziel ein option-Element ist, tun Sie X action?

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'); 
    } 
} 

Aktualisiert Code:

http://jsbin.com/olusi

+0

haben Sie Beispielcode haben? Ich habe versucht, aber nicht arbeiten – MemoryLeak

+0

aktualisiert mit Pseudo-Code Beispiel, ich habe es gerade in der Post eingegeben Ich habe nicht wirklich dies ausprobiert.Sie ​​müssen möglicherweise für sprudeln mit StopPropagation und so obwohl, lassen Sie mich wissen, wie es geht. –

+0

Ich denke, dass Sie das Ereignis.srcElement im IE benötigen, um zu erhalten, welches Element das Ereignis ausgelöst hat. Http://msdn.microsoft.com/en-us/library/ms534638%28VS.85%29.aspx – scunliffe

6

IE nicht unterstützt Ereignisse auf dem Option Element. Sie können versuchen, wie @meder sagt, fügen Sie einen Handler für die Elternauswahl hinzu und untersuchen Sie dann das Ereignis, um zu sehen, welche Option mit Mauszeiger versehen wurde.

PS diese wurden in IE6 bekannten Fehler (und in IE7 und IE8 Beta-Tests berichtet - und wies bisher für die Befestigung) :-(

Vielleicht wird IE9 sie unterstützen

+0

IE9 wird sie scheinbar nicht unterstützen! zumindest nicht in der Beta von 1-16 :( – Kyle

Verwandte Themen