Задать вопрос
Anonym
@Anonym
Программирую немного )

JQuery ready for new elements?

По $(document).ready обрабатываются все элементы select.

После этого на странице могут появиться новые селекты, они могут быть созданы яваскриптом или получены аяксом.

С помощью live можно назначить им какой-то обработчик события, но мне нужно обработать их в момент создания.

Вклиниться в места, где элементы создаются я не могу.

Как обработать новые элементы?
  • Вопрос задан
  • 3681 просмотр
Подписаться 3 Оценить Комментировать
Решение пользователя Павло Пономаренко К ответам на вопрос (4)
Попробуйте сделать так —
var nodes = document.getElementsByTagName('select');


В nodes будет live NodeList, который меняется при изменении дом-дерева, потому достаточно проверять длину в таймауте

var nodes = document.getElementsByTagName('select');
var prev = 0;
setInteval(function () {
  if (nodes.length != prev) {
    prev = nodes.length;
    recount();
  }
}, 10);


Конечно, если один селект удалился, а другой добавился — такой вариант не пройдёт и необходимо сравнивать по содержимому.
Ответ написан