загружают некоторое содержимое на страницу HTML с помощью метода JQuery .load()
так:Jquery не может видеть элемент после его загрузок через .load()
$('#block_name').load('components/content.html #div1');
Он загружает отлично, но я столкнулся с неожиданной проблемой , После этого jQuery не может инициировать какую-либо процедуру для элементов загруженного содержимого. Например, если #div1
имеет связь с идентификатором my_link
то такое призвание:
$('#my_link').on('click', function(){ /* some actions*/ });
не имеет никакого эффекта. Похоже, он просто не существует, хотя, если я попытаюсь выбрать его в dev console, я могу его найти. Кроме того, если я установить обработчик в этой ссылке в шаблоне (content.html), как это:
<a id="my_link" href="#" onClick="return myFunction();">Link text</a>
... это прекрасно работает. Так что может быть вызвано такой проблемой и есть ли способ избежать этого?
+1 - Это было быстро, даже не успел дочитать этот вопрос? – adeneo
Отличный ответ, спасибо. Btw о ссылке вы предоставили. Там я нашел такое заявление: «Если на страницу вводится новый HTML-код, выберите элементы и присоедините обработчики событий после того, как новый HTML-код будет помещен на страницу». Правильно ли я понимаю, что он равен предложенному вами решению? Он не работает :( – srgg6701
Ну да, вы можете использовать делегирование делегирования для добавления новых элементов на страницу или стандартного привязки событий, добавленных на страницу после добавления новых элементов на страницу. – j08691