События JavaScript на связанных элементах - PullRequest
1 голос
/ 13 февраля 2012

Мне интересно, корректно ли следующее поведение.

У меня есть элемент метки, связанный с элементом ввода с помощью атрибута "for", должно ли это привести к двум событиям клика на одном клике пользователя по метке?Определенно, поместите слушателя щелчка в окно.Затем определите флажок с элементом label, связанным с ним, используя атрибут «for».Нажмите на текст метки.В результате флажок будет установлен, и вы увидите два события клика.http://jsfiddle.net/k55uD/2/

Если это поведение правильное, есть ли еще такие случаи, атрибуты или что-то еще?Некоторые спецификации были бы хорошими.

Любая помощь приветствуется.

PS Я обновляю пост с примером.

Ответы [ 2 ]

3 голосов
/ 13 февраля 2012

Нажатие label вызовет любую функцию onclick, связанную с этим label и любую onclick, присоединенную к самому input.Нажатие input вызовет только onclick для input.

Это очень легко проверить.Смотрите здесь:

0 голосов
/ 13 февраля 2012

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

Однако это то, что вы должны определить, по умолчанию вы не получите второй щелчок помаркировать только потому, что это «для» другого элемента.

По сути, это зависит от вас - вы можете настроить его для вызова двух или одного события, но из коробки вы получите одно событие для элемента, для которого вы определили обработчик.

Это довольно хорошо объясняет события и порядок событий, а также дает некоторые советы по поводу особенностей браузера.

http://www.quirksmode.org/js/events_order.html

РЕДАКТИРОВАТЬ:

Если вы специально, поставьтеслушатель щелчка на окне.Затем вы получите оба события в связи с распространением, это также объясняется в приведенной ссылке.

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