Вы здесь

Как отследить появление новго элемента в DOM, при работе с Webform

1

Здравствуйте друзья. Собственно вопрос вот в чем...

При использовании модуля Webform, используется поле для добавления файлов к форме, без нажатия на кнопку "Загрузить". Т.е. нажимаем "Выбрать файл", появляться окно windows, в котором мы выбираем файл для загрузки. В DOM появляется новый элемент, который указывает на путь до выбранного файла, и новый элемент input, для последующего выбора нового файла для формы. Необходимо отследить появление нового прикрепленного элемента к форме в дереве DOM, что бы повесить имитацию прогресса загрузки, хоть реальная загрузка файлов на сервер и происходит по нажатию кнопки "Отправить" для всей формы.

Пустой элемент до нажатия кнопки "Загрузить"

Появление нового элемента после выбора файла в проводнике Windows

Проблему не могу решить при помощи jquery, так как не совсем ясно как отследить появление нового элемента. Ведь дерево загружается вместе со страницей, и появление новых элементов после полной загрузки страницы, не отслеживается вроде бы как стандартными функциями jquery. Или отслеживается? Не правильно наверное будет вешать счетчик, для периодической проверки массива.

В общем буду вам благодарен за помощь.

Версия Drupal: 
7.x
Категория: 
File APIForm APIJavascript
Вопрос задан 12.10.2015 - 17:54
Аватар пользователя Turon
Turon
17

Ответы

1

А я бы повесил обработчик на событие change на input file и в нем уже выбирать появившийся узел.

Ответ дан 12.10.2015 - 18:32
Аватар пользователя drupby
drupby
456

Идеальный вариант. Спасибо!

 $('selector').on('change', function(){});
Комментарий оставлен 12.10.2015 - 21:01
0
setInterval(function() {
  if ($(selector).length) {
    alert('элемент добавлен в dom');
  }
}, 100);
Ответ дан 12.10.2015 - 18:15
Аватар пользователя xandeadx
xandeadx
1542

Разве он не будет потом кричать по 10 раз в секунду 'элемент добавлен в dom', когда элемент будет добавлен?

Комментарий оставлен 12.10.2015 - 19:12