нельзя использовать событие onmouseover при выборе опции в IE - PullRequest
6 голосов
/ 21 сентября 2009

Обновленный код:

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

}
};

, но все еще не работает в IE.

Ответы [ 2 ]

7 голосов
/ 21 сентября 2009

IE не поддерживает события для элемента option . Вы можете попробовать, как говорит @meder, добавить обработчик для родительского выбора, а затем проверить событие, чтобы увидеть, какая опция была наведена.

PS это были известные ошибки в IE6 (о которых сообщалось в бета-тестировании IE7 и IE8 - и отклоненные для исправления до настоящего времени): - (

Может, IE9 их поддержит?

4 голосов
/ 21 сентября 2009

Не можете ли вы по-прежнему устанавливать обработчик события наведения курсора на весь выбор и указывать свойство события, если цель является элементом option, выполнять действие 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');
    }
}

Обновленный код:

http://jsbin.com/olusi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...