vs bind上的jQuery用于无效事件类型

vs bind上的jQuery用于无效事件类型,jquery,events,bind,Jquery,Events,Bind,给定以下HTML: <form> <input type="number" required> </form> 但此javascript代码没有: (function( jQuery ) { jQuery("form").on("invalid", "input", function(event) { console.log(event.type); }); })( jQuery ); 有人知道为什么吗 编辑:更新f

给定以下HTML:

<form>
  <input type="number" required>
</form>
但此javascript代码没有:

(function( jQuery ) {

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

})( jQuery );
有人知道为什么吗


编辑:更新fiddle以更正一个:

无效事件不会冒泡,它在中这样说,因此委派的事件处理程序不会工作,因为事件不会冒泡

这应该行得通

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

可能是因为HTML输入元素可能无效,但表单元素不能,无效事件也不能bubble@TravisJ-问题是为什么第二个例子不起作用,答案是你不能委派一个不冒泡的事件,或者我是这么想的?那么问题是什么呢?但是我给了.on方法“输入”选择器。关键是,如果表单内容被动态重新加载,那么它们将使用.bind方法释放其事件处理程序。@drummondj-哦,你不能。事件不会冒泡,因此您不能委托事件,您必须在元素插入DOM后应用事件处理程序或找到某种解决方法,我真的想不出任何聪明的方法来让它工作。@dru,这正是问题所在,当您将选择器指定为on时,您将在更高级别上创建一个委托事件,当且仅当事件冒泡时才会触发。@drummondj-我认为这将是最好的方法,因为任何其他方法都可能涉及使用间隔或变异观察器的攻击,因为无法使事件冒泡(嗯,有,但那更复杂)
jQuery("form input").on("invalid", function(event) {
    console.log(event.type);
});