Параметр jQuery-Select list hover

Я хочу предупредить параметр, когда курсор мыши над ним. Я использую этот код:

$("select > option").hover(function ()
    { 
        alert($(this).attr("id"));
    });

К сожалению, это не работает ни в IE, ни в FF.

Может кто-нибудь дать мне подсказку, пожалуйста?

Ответ 1

Вы можете попробовать это.

$("select").hover(function (e)
{
     var $target = $(e.target); 
     if($target.is('option')){
         alert($target.attr("id"));//Will alert id if it has id attribute
         alert($target.text());//Will alert the text of the option
         alert($target.val());//Will alert the value of the option
     }
});

Ответ 2

Если вы создадите поле выбора типа "список", добавив атрибут "size = x", например:

<select size="3">
   <option>...</option>
   <option>...</option>
</select>

Событие зависания будет работать над элементами опции:

$('option').hover(function(){
     //code here
});

Ответ 3

Здесь обход (довольно приличный, я думаю) -

  • Используйте mouseover событие, чтобы установить размер поля выбора равным no. его детей
  • Используйте mouseenter событие, чтобы получить параметры. mouseenter отлично работает с параметрами, когда есть атрибут size (все мы знаем это сейчас)
  • Используйте mouseout событие, чтобы установить размер окна выбора на 1, чтобы вернуть наш нормальный флажок:)

JSFiddle