Привязка обработчиков jQuery на этапе захвата события (не всплывание событий) - PullRequest
3 голосов
/ 13 августа 2010

Я собираюсь реализовать делегирование событий для событий размытия / фокуса, аналогично тому, что предлагалось для quirksmode .Как объяснено в TFA, события размытия и фокуса не всплывают, поэтому вы не можете использовать делегирование событий с ними на этапе пузырьков, но вы можете захватить их на этапе захвата (man, события javascriptстранно).

Во всяком случае, насколько я вижу, все события jQuery применяются к фазе пузырьков, или, по крайней мере, там я всегда их использовал.Я не вижу никакой информации об этом так или иначе в документах jQuery, и по умолчанию использование чего-то вроде $ ('# foo'). Blur (blurHandler), кажется, не захватывает ее.

Я бы предпочел придерживаться использования jQuery для согласованности;Есть ли способ сделать это?

1 Ответ

3 голосов
/ 13 августа 2010

Если вы говорите, что хотите, чтобы контейнер запускал обработчик, когда потомок <input> получает фокус или размытие, попробуйте использовать .focusin() и .focusout().

Из документов:

Событие focusin отправляется элементу, когда он, или любомуэлемент внутри него, получает фокус.Это отличается от события focus в том, что оно поддерживает обнаружение события focus на родительских элементах.

Событие focusout отправляется элементу, когда он или любой элемент внутри него теряет фокус.Это отличается от события размытия тем, что оно поддерживает обнаружение потери фокуса от родительских элементов (другими словами, оно поддерживает всплытие событий).

...