Подтвердить что ты не робот

Происходит ли событие обмена?

Я использую делегирование делегирования для прослушивания событий ниже в DOM, но он не работает для события onchange в окне выбора. Сообщает ли событие onchange или пузырится DOM?

Google не смог найти окончательный ответ.

4b9b3361

Ответ 1

В соответствии со спецификацией "изменения", "отправить", "reset" должны пузыриться и "фокусироваться" и "размывать", не должно пузыриться.

Это поведение реализовано правильно во всех веб-браузерах, за исключением IE < 9, т.е. Изменить, отправить, reset сделать правильно пузырь в IE >= 9.

Смотрите fooobar.com/questions/103591/... для обходного пути jQuery для старых версий IE

Ответ 2

В jQuery 1.4+ переменные события появляются во всех браузерах, включая IE.

$('div.field_container').change(function() {
   // code here runs in all browers, including IE.
});

Ответ 3

Я не занимался этим некоторое время, но в прошлый раз я помню, что Firefox распознал событие в элементе <SELECT>, в то время как IE6 распознал только события в тегах <OPTION>. Насколько я помню.

В то время IE7 не вышел.

Итак, если это так, то имеет смысл даже не писать обработчик события inline и применять его вместо DOM, чтобы у вас не было много загрязненного повторяющегося кода.

Ответ 4

Не уверен, если у меня возник вопрос, но если вы имеете в виду это, то НЕТ.

<div id="foo">
  <select onchange="alert('hi');">
    <option>Hello</option>
    <option>World</option>
  </select>
</foo>

Где div id = "foo" будет иметь событие onchange... пузырящийся из списка выбора?


в соответствующей заметке, просто FYI, вы не можете присоединить событие к параметрам в списке выбора в IE (ну, вы можете, но он не будет срабатывать)