В целях развития я играю и создаю свой собственный эффект лайтбокса. У меня есть, чтобы загрузить оверлейный div с содержимым div посередине и использовал стандартный значок перекрестка в правом верхнем углу, чтобы позволить пользователю закрыться.jQuery делегированное событие клика не срабатывает
Проблема в том, что когда я нажимаю крест, ничего не происходит. У меня было:
$('.cross').click(function() {
$('.popup-overlay').remove();
});
После небольшого Googling вокруг, похоже, это может быть связано с тем, что содержание динамически загружаемой и, таким образом, мне нужно, чтобы оптимизировать яваскрипта делегацию. Я попытался с помощью:
$('.popup-overlay').on('click', '.cross', function() {
alert('click');
});
и:
$('a[rel="popup"]').on('click', '.popup-overlay', function() {
alert('click');
});
но не стрелять. Это HTML-код, который динамически загружается в.
<div class="popup-overlay">
<div class="half-height">
<div class="popup-box">
<img src="assets/img/cross.png" alt="close" class="cross">
</div>
</div>
</div>
так .....
Может кто-нибудь сказать мне, как сделать это так, чтобы, когда я нажимаю .cross, в .popup-наложение HTML удаляется из тела?
Заранее благодарим за помощь.
Это должно быть '$ ('. Popup-overlay'). Remove();' для начала. Обратите внимание на точку. –
Будет ли '$ (document) .on ('click', '.cross', function() { alert ('click'); });' вывести предупреждение? –
извините, здесь опечатка. но есть ли в коде, фиксированный – MarkP