Javascript 我是否可以从DOM上方动态创建的HTML输入元素捕获更改事件?

Javascript 我是否可以从DOM上方动态创建的HTML输入元素捕获更改事件?,javascript,dom,dom-events,onchange,unobtrusive-javascript,Javascript,Dom,Dom Events,Onchange,Unobtrusive Javascript,我有一个表单元素,它在页面加载后动态生成。我使用jQuery附加了一个更改事件,该事件将更新表单中的其他字段,并希望消除每次替换包含更改的表单时重新连接处理程序的需要 对于动态元素上的点击事件,我一直在转向不引人注目的JavaScript,并希望使用这种方法进行更改,但没有成功。直接连接到是很麻烦的,因为当在DOM中替换节点时,连接的事件侦听器将随之死亡,并且必须再次连接新节点 因此,我想知道,有没有一种方法可以悄悄地将更改事件处理程序分配给新创建的元素的父元素,并让事件冒泡到以前存在的元素上的

我有一个表单元素,它在页面加载后动态生成。我使用jQuery附加了一个更改事件,该事件将更新表单中的其他字段,并希望消除每次替换包含更改的表单时重新连接处理程序的需要

对于动态元素上的点击事件,我一直在转向不引人注目的JavaScript,并希望使用这种方法进行更改,但没有成功。直接连接到是很麻烦的,因为当在DOM中替换节点时,连接的事件侦听器将随之死亡,并且必须再次连接新节点

因此,我想知道,有没有一种方法可以悄悄地将更改事件处理程序分配给新创建的元素的父元素,并让事件冒泡到以前存在的元素上的处理程序,以避免每次创建新的目标输入元素时都附加处理程序?

$'StaticParentNode'。在'change'上,选择.qualifiers,函数{ 从父级检测到警报更改; };

当然,在我把原始答案贴在下面2分钟后,我终于找到了这个工作。Doh

没有

在父级或文档上附加不引人注目的事件侦听器对于从页面上以前不存在的元素中冒泡单击事件非常有用,但您只能将事件侦听器附加到具有该类型事件的元素

如中所述,尽管此问题不是特定于jQuery的:

当元素的值更改时,将更改事件发送到元素。此事件仅限于元素、框和元素`

由于和文档没有更改事件,因此它们也无法从其子级截获更改事件

解决方案:

生成元素[]时,只需将onchange设置为先前定义的函数。从关注点分离的角度来看,这不是一种纯粹的方法,而是一种简单的方法,只需在AJAX请求中添加最少的额外HTML,并且在AJAX调用完成后不需要处理程序

或者

每次创建需要事件监听器的新元素时,可以“手动”重新附加事件监听器,例如在$.ajax success函数中,或者将其连接到处理ajax结果的任何工具中,例如修改或扩展.prototype。见其他地方的例子

对!

$'StaticParentNode'。在'change'上,选择.qualifiers,函数{ 从父级检测到警报更改; };

当然,在我把原始答案贴在下面2分钟后,我终于找到了这个工作。Doh

没有

在父级或文档上附加不引人注目的事件侦听器对于从页面上以前不存在的元素中冒泡单击事件非常有用,但您只能将事件侦听器附加到具有该类型事件的元素

如中所述,尽管此问题不是特定于jQuery的:

当元素的值更改时,将更改事件发送到元素。此事件仅限于元素、框和元素`

由于和文档没有更改事件,因此它们也无法从其子级截获更改事件

解决方案:

生成元素[]时,只需将onchange设置为先前定义的函数。从关注点分离的角度来看,这不是一种纯粹的方法,而是一种简单的方法,只需在AJAX请求中添加最少的额外HTML,并且在AJAX调用完成后不需要处理程序

或者

每次创建需要事件监听器的新元素时,可以“手动”重新附加事件监听器,例如在$.ajax success函数中,或者将其连接到处理ajax结果的任何工具中,例如修改或扩展.prototype。见其他地方的例子


@AlexanderO'Mara我知道一定有一些问题可以解决这个问题,但我在搜索的标签中找不到任何有用的东西。当然,你会在几分钟内发现一个6岁以上的孩子:对我来说,这只是一个没有大脑的日子——我想是时候放下键盘,去做些别的事情了。重复标志被接受。希望有人能用与我相同的关键词思考,从这里转到上一个问题。与链接问题不同,如下面的答案所述:链接答案涉及所有元素上存在的click、mouseover、mouseout,但是输入是一种特殊情况,建议的解决方案不适用。@AlexanderO'Mara我知道必须有一些问题来解决这个问题,但在我搜索的标签中找不到任何有用的东西。当然,你会在几分钟内发现一个6岁以上的孩子:对我来说,这只是一个没有大脑的日子——我想是时候放下键盘,去做些别的事情了。重复标志被接受。希望有人能用与我相同的关键词思考,从这里转到上一个问题。与链接问题不同,正如下面的答案所解释的:链接的答案涉及click、mouseover、mouseout,它们存在于 所有元素,但输入是建议的解决方案不适用的特殊情况。