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