Я использую делегирование делегирования для прослушивания событий ниже в DOM, но он не работает для события onchange в окне выбора. Сообщает ли событие onchange или пузырится DOM?
Google не смог найти окончательный ответ.
Я использую делегирование делегирования для прослушивания событий ниже в DOM, но он не работает для события onchange в окне выбора. Сообщает ли событие onchange или пузырится DOM?
Google не смог найти окончательный ответ.
В соответствии со спецификацией "изменения", "отправить", "reset" должны пузыриться и "фокусироваться" и "размывать", не должно пузыриться.
Это поведение реализовано правильно во всех веб-браузерах, за исключением IE < 9, т.е. Изменить, отправить, reset сделать правильно пузырь в IE >= 9.
Смотрите fooobar.com/questions/103591/... для обходного пути jQuery для старых версий IE
В jQuery 1.4+ переменные события появляются во всех браузерах, включая IE.
$('div.field_container').change(function() {
// code here runs in all browers, including IE.
});
Я не занимался этим некоторое время, но в прошлый раз я помню, что Firefox распознал событие в элементе <SELECT>
, в то время как IE6 распознал только события в тегах <OPTION>
. Насколько я помню.
В то время IE7 не вышел.
Итак, если это так, то имеет смысл даже не писать обработчик события inline и применять его вместо DOM, чтобы у вас не было много загрязненного повторяющегося кода.
Не уверен, если у меня возник вопрос, но если вы имеете в виду это, то НЕТ.
<div id="foo">
<select onchange="alert('hi');">
<option>Hello</option>
<option>World</option>
</select>
</foo>
Где div id = "foo" будет иметь событие onchange... пузырящийся из списка выбора?
в соответствующей заметке, просто FYI, вы не можете присоединить событие к параметрам в списке выбора в IE (ну, вы можете, но он не будет срабатывать)