События jQuery для фокусировки и размытия не всплывают

) Со следующей структурой html:

и следующий код jquery:

$('form').on("focus", function(event) {
    $("p").append("focus no delegation
"); })

Почему не "событие фокуса когда-либо достигало моего обработчика событий? Связывание события с параметром селектора работает нормально:

$('form').on("focus", "input", function(event) {
    $("p").append("focus delegation
"); })

Событие следующего фрагмента работает, поэтому событие фокуса фактически всплывает...

$('form').on("focus", "span", function(event) {
    $("p").append("focus delegation
"); })

Обе формы работают с щелчком и изменением события:

$('form').on("click", function(event) {
    $("p").append("click no delegation
"); }) $('form').on("click", "input", function(event) { $("p").append("click delegation
"); })

Единственное замечание, которое я нашел о всплытии события фокуса, относится к более старым версиям jQuery, которые я не использую. См. это в действии здесь

редактировать 1

Ну, это сбивает с толку.. .Согласно фокусному документу jQuery:

Событие focus не всплывает в Internet Explorer. Поэтому скрипты, которые полагаются на делегирование события фокусным событием, не будут работать последовательно в разных браузерах. Однако, начиная с версии 1.4.2, jQuery работает обойти это ограничение путем сопоставления фокуса с событием focusin в его методах делегирования событий .live() и .delegate()

. :

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

Слишком поздно для меня или одно противоречит другому?

12
задан bernie 6 March 2012 в 05:08
поделиться