1. ホーム
  2. javascript

[解決済み] jQuery .on('change', function() {}が動的に作成された入力に対してトリガーされない。

2022-03-04 04:35:02

質問

問題は、動的に作成された入力タグのセットがあり、入力値が変更されるたびにトリガーされる関数があることです。

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

しかし .on('change') は、動的に作成された入力に対してはトリガーされず、ページがロードされたときに存在していた項目に対してのみトリガーされます。残念ながら、これによって私は以下のように少し困っています。 .on を置き換えるものです。 .live().delegate() のラッパーです。 .bind() :/

この問題に直面した人、または解決策をご存知の方はいらっしゃいますか?

解決方法は?

にセレクタを指定する必要があります。 on 関数を使用します。

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

その場合、期待通りに動作します。また、documentではなく、何らかの要素を指定したほうがよいでしょう。

この記事を読むと、より理解が深まります。 http://elijahmanor.com/differences-between-jquery-bind-vs-live-vs-delegate-vs-on/