小编典典

jQuery .on('change', function() {} 不会触发动态创建的输入

all

问题是我有一些动态创建的输入标签集,而且我还有一个函数可以在输入值更改时触发。

$('input').on('change', function() {
  // Does some stuff and logs the event to the console
});

但是,.on('change')不会触发任何动态创建的输入,仅适用于加载页面时存在的项目。不幸的是,这让我有点困惑,因为这.on意味着要替换所有这些都是:/.live()``.delegate()``.bind()

有没有其他人遇到过这个问题或知道解决方案?


阅读 104

收藏
2022-08-24

共1个答案

小编典典

您应该为该on函数提供一个选择器:

$(document).on('change', 'input', function() {
  // Does some stuff and logs the event to the console
});

在这种情况下,它将按您的预期工作。此外,最好指定一些元素而不是文档。

阅读这篇文章以获得更好的理解:http ://elijahmanor.com/differences-between-jquery-bind-vs-
live-vs-delegate-vs-on/

2022-08-24