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/
Ответ 2
Используйте этот
$('body').on('change', '#id', function() {
// Action goes here.
});
Ответ 3
$("#id").change(function(){
//does some stuff;
});