Ответ 1
Собственно, это так же просто, как запустить .each внутри setTimout.
setTimeout(function(){
$(".inputs").each(function(){$(this).val("new-value")});
}, 5000);
Есть много вопросов, которые, кажется, спрашивают об этом, но в конце концов все, что они хотят, - это присоединить .click-события, а не .each, и поэтому общепринятый ответ во всех из них включает $("body").on("click", ".selector", function(){});
, и это определенно не то, что я хочу.
У меня есть некоторые сгенерированные входы, и мне нужно изменить значение каждого из них одновременно. Обычно я бы $(".inputs").each(function(){$(this).val("new-value")};
или что-то в этом роде, однако я не могу из-за динамического аспекта.
Итак, как бы вы сделали $("body").on("each", ".inputs", function(){});
?
Собственно, это так же просто, как запустить .each внутри setTimout.
setTimeout(function(){
$(".inputs").each(function(){$(this).val("new-value")});
}, 5000);
$.each
работает с добавленными новыми элементами.
Выполнение чего-то другого:
Вы можете использовать $(".inputs").each(function(){$(this).val("new-value")};
отлично для динамических элементов. Вам просто нужно перезапустить script после того, как вы добавили элемент динамически.
Из комментариев я понял, что существует некоторое недоразумение о "каждом". "Каждый" не является событием, поэтому ни одно событие не запускается, если вызывается "каждый". Если вы хотите отслеживать добавленные элементы, потому что у вас нет контроля над их добавлением, вам нужен таймер:
setInterval(function(){ $(".inputs").each(function(){$(this).val("new-value")}; },500);