Захват событий мыши для элемента HTML в IE - PullRequest
1 голос
/ 29 октября 2009

Только для Internet Explorer кажется, что цель (srcElement) щелчков, mousedowns, mouseups, mouseovers и т. Д. На элементах <select /> не будет привязана к элементу <option />.

С учетом следующего HTML:

<select id="madness">
   <option value="1">One</option>
   <option value="2">Two</option>
   <option value="2">Three</option>
</select>

и этот базовый обработчик событий jQuery:

$("#madness").mousedown(function(e){
   alert(e.target.value); //jQuery pushes srcElement into the target for us here
});

Объект, который находится в e.target или e.srcElement, всегда равен <select />, а не <option />.

Я решил проявить изобретательность и попытаться использовать document.elementFromPoint(e.clientX,e.clientY), и это также возвращает элемент SELECT.

Возникает вопрос: есть ли способ определить <option /> внутри <select /> с помощью аргументов, координат или чего-то еще? Я знаю, что могу подделать это с помощью прокручиваемого блока флажков. Для целей этого вопроса я хотел бы получить любые решения, которые могут использовать нативный элемент select.

Ответы [ 2 ]

2 голосов
/ 29 октября 2009

Проще говоря, нет решений, использующих нативный элемент select.

0 голосов
/ 29 октября 2009

Вы можете сделать:

$("#madness").val()

Для получения значения выбранного

.
...