установка значения для текущих элементов и динамически добавляемых элементов в jquery

#javascript #jquery #events #dom

#javascript #jquery #Мероприятия #dom

Вопрос:

У меня есть следующий код, но он не работает

 $("body").delegate("textarea", "ready", function () {
    $(this).val("custom value");
});
  

Я намереваюсь установить это значение для текущих элементов в dom и будущих текстовых областей, динамически добавляемых на страницу, есть ли решение?

Комментарии:

1. С вашим текущим кодом событие ready body делегируется текстовым полям. Однако событие ready запускается только один раз во время загрузки страницы, следовательно, текущий код хорош как установка $(function(){$(«textarea»).val(«пользовательское значение»);})

2. @cybernate это работает для текущих элементов на странице, но что произойдет, если новые текстовые области будут добавлены динамически? новые элементы не будут принимать это значение.

3. Как добавляются текстовые поля? Это должно быть сделано скриптом. Почему бы вам не перехватить код, который создает текстовое поле, и не присвоить ему значение? Я не думаю, что доступно какое-либо событие, подобное добавленному элементу.

4. Ответ Эли поможет мне найти обходной путь, я делаю что-то действительно общее в каждой обратной передаче ajax, чтобы я мог поместить свой код в событие ajaxSucess, спасибо в любом случае.

Ответ №1:

.ready это событие, которое происходит на document , а не при загрузке других элементов. К сожалению, для этого также нет изящного решения. Лучшее, что я могу предложить, это после завершения каждого из ваших запросов ajax выбрать все textarea и установить их значения:

 // maybe something similar to this.
$(document).ajaxSuccess(function() {
  $('textarea').val('custom value');
});