Как добраться к динамически созданным элементам?

Здравствуйте уважаемые программисты. Есть у меня плагин загрузки файлов. Внутри плагина при наведении на кнопку в теле страницы, срабатывает функция, которая создает рядом с той кнопкой блок с идентификатором $('#filesLoadMenu'+$rand) - где rand сгенерированное случайное число. Сделано это потому что плагин на странице может быть запущен ни один раз.
И внутри этого блока размещены кнопки для выбора типа файлов, которые пользователь хочет загрузить "ФОТО", "АУДИО", "ВИДЕО", "ДОКУМЕНТ". Эти кнопки являются блоком див, у которого есть свой атрибут data-accept="image/jpeg,image/png,image/gif" для ограничений выбора нужных типов файлов.
При клике на такой блок должно открыться окно выбора файлов. Но... У меня этого не происходит.
Делаю так:
$('body').find('#filesLoadMenu'+$rand).find("[data-accept]").on("click","[data-accept]", function(e) {console.log('Сработал клик по кнопкам');$('#myFiles'+$rand).attr('accept',$(this).data('accept')).click();});

Если сделать просто
$('body').on("click","[data-accept]", function(e) {console.log('Сработал клик по кнопкам');$('#myFiles'+$rand).attr('accept',$(this).data('accept')).click();});

То все сработает как надо, но в любом месте страницы, а мне надо указывать конкретное место срабатывания клика. Так как плагинов может быть несколько.
Проблема явно заключается в том, что все элементы динамически созданные и событие не срабатывает. Как мне решить эту проблему? Не подскажете?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
@cyberlog
>а мне надо указывать конкретное место срабатывания клика. Так как плагинов может быть несколько.
Надо вместо "[data-accept]" во втором случае написать более сфокусированный селектор
например: "#filesLoadMenu[data-accept]"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы