#javascript #jquery #twitter-bootstrap #bootstrap-4
#javascript #jquery — jquery — запрос #твиттер-bootstrap #bootstrap-4 #jquery #twitter-bootstrap
Вопрос:
Я использую следующий скрипт для загрузки изображений из папки и добавления их в div:
$(function() {
var folder = "img/moreprojects/";
$.ajax({
url : folder,
success: function (data) {
$(data).find("a").attr("href", function (i, val) {
if( val.match(/.(jpe?g|png|gif)$/) ) {
$("#gallery").append( "<div class="col-12 col-sm-3" align='center'><img class='img-fluid img-thumbnail img-rounded mx-auto d-block' style="max-width: 240px; max-height: 240px; margin: 12px;" src='" folder val "'></div>" );
}
});
}
});
});
Однако, когда я вызываю свой следующий скрипт, который открывает модель для изображения (который работает с изображениями, уже находящимися на странице), изображения не открываются:
$(function() {
$('img').on('click', function() {
$('.enlargeImageModalSource').attr('src', $(this).attr('src'));
$('#enlargeImageModal').modal('show');
});
});
Как я могу заставить эту функцию, которая уже работает для изображений в HTML, работать с моими динамически загружаемыми изображениями?
Примечание: Я использую Bootstrap 4 и jQuery.
Редактировать
Структура HTML (я использую Bootstrap 4):
<section class="py-5">
<div class="container">
<div class="row" id="gallery">
<p class="lead">Welcome to our gallery! Here we showcase all the images from our projects and other work. Use the toggles below, to switch between a list view and a swiping gallery view!</p>
<br /><br />
</div>
</div>
</section>
<div class="modal fade" id="enlargeImageModal" tabindex="-1" role="dialog" aria-labelledby="enlargeImageModal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
<img src="" class="enlargeImageModalSource" style="width: 100%;">
</div>
</div>
</div>
</div>
Комментарии:
1. Можете ли вы опубликовать свою HTML-структуру и библиотеки, которые вы используете, чтобы вам было проще помогать?
2. Что именно вы ожидаете получить в ответ на запрос ajax и какой ответ вы получаете?
3. Ответ работает нормально, изображения отображаются. Не работает только вызов on click.
Ответ №1:
Изменение .on('click', ...)
вызова из:
$('img').on('click', function() {...});
Для
$(document).on('click', 'img', function() {...});
исправлена проблема с вызовом события click для динамически загружаемых изображений.