9

数分前、私は次の質問に答えました:
jQuery での focusin/focusout と focus/blur の違いは何ですか?

答えは次のとおりです。

短い答え:focusin    泡、focusしません。
        focusout 泡立ちblur   ません。

私はそれをテストしました、それは本当ですが、デモをセットアップしようとしているときに奇妙なことに遭遇しました:

$('#test').on('focusin focusout focus blur change', function(e) {
    console.log(e.type + 'event bubles? : ' + e.bubbles);
});​

focusinそしてfocusout私にくれe.bubbles == false

それはjQueryのバグですか、それともここで明らかなことを見逃していますか?

4

1 に答える 1

4

jQueryのバグのようです。ネイティブにサポートfocusinしているブラウザーでこれをテストしましたか? focusout(例: IE?) そうでない場合は、jQuery のエミュレート サポートのフラグをテストしているためです。

bubblesjQuery はドキュメントでプロパティを正規化すると主張していないため、上記の「バグのように聞こえます」の部分を取り消しました。したがって、それを保証するものではないため、エミュレートされたイベントでサポートする必要はありません。(IE7 でデモを実行すると、 IE7 は DOM3 Eventsプロパティundefinedをサポートしていないため、エラーが発生することに注意してください。) まだ問題ですが、おそらくバグではありません。:-)bubbles


更新

jQuery チケットに対する応答:

ドキュメントは、 event.bubbles プロパティを正規化するとは主張していません。event.originalEvent で検索できますが、それはプラットフォームが提供する正規化されていないものになります。

したがって、上記の私の推測は正しかった。彼らはそれを正規化すると主張していないので、それはバグではありません:-)

于 2012-05-14T13:43:50.803 に答える