web-dev-qa-db-ja.com

無効なイベントタイプのjQueryとバインド

次のHTMLがあるとします。

<form>
  <input type="number" required>
</form>

次のJavaScriptは正常に機能します。

(function( jQuery ) {

    jQuery("input").bind("invalid", function(event) {
        console.log(event.type);
    });

})( jQuery );  

しかし、このjavascriptコードは次のことを行いません。

(function( jQuery ) {

    jQuery("form").on("invalid", "input", function(event) {
        console.log(event.type);
    });

})( jQuery );

なぜ誰かが何か考えを持っていますか?

編集:フィドルを更新して修正しました: http://jsfiddle.net/PEpRM/1

16
drummondj

無効なイベントはバブルしません。 documentation にそのように表示されます。したがって、イベントがバブルしないため、委任されたイベントハンドラーは機能しません。

これはうまくいくはずです

jQuery("form input").on("invalid", function(event) {
    console.log(event.type);
});
20
adeneo