jQuery .on('change', function() {} は動的に作成された入力に対してトリガーされません 質問する

jQuery .on('change', function() {} は動的に作成された入力に対してトリガーされません 質問する

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

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

しかし、 は動的に作成された入力に対してはトリガーされず、ページがロードされたときに存在していた項目に対してのみトリガーされます。残念ながら、 はの代替となるはずであり、すべてが のラッパーであるため、.on('change')これは少し困った状況に陥ります:/.on.live().delegate().bind()

他にこの問題を経験した人や解決策を知っている人はいますか?

ベストアンサー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/

おすすめ記事