#html #jquery
#HTML #jquery
Вопрос:
когда страница загружается, кнопка on click не работает в первый раз, но затем она работает нормально, она отлично работает в vs code без onClick (), но в visual Studio она не запускается без onClick () и работает следующим образом .. пожалуйста, кто-нибудь, расскажите мне об этой проблеме, спасибо..
<script>
function GetProductsRowHtmlSlider(product, div) {
$(div).append($('<div class="column"><div class="container" style="width: 320px; margin-bottom: 10px;"><div class="pic_container"><img src=' product.imgSrc ' data-highres=' product.imgSrc ' class="image" style="width: 100%; height: auto; padding: 20px;"></div><h3 class="productName" style="padding: 0px !important; margin: 0px !important; overflow-wrap: break-word;">' product.Title '</h3><p class="productDisc" style="padding: 0px !important; margin: 0px !important; overflow-wrap: break-word;">' product.ItemPrice '</p></div><div id = "myModal" class="modal"><span id="close_model" class="close">amp;times;</span><img class="modal-content" id="modal-image"></div></div>'))
}
</script>
function myFunction() {
var images = document.querySelectorAll(".image");
var len = images.length;
for (var i = 0; i < len; i ) {
images[i].addEventListener("click", openModal);
}
var modal = document.getElementById("myModal");
var modalImg = document.getElementById("modal-image");
function openModal() {
modal.style.display = "block";
modalImg.src = this.getAttribute("data-highres");
}
var span2 = document.getElementById("close_model");
span2.onclick = function () {
modal.style.display = "none";
};
window.openModal = function (images) {
modal.style.display = "block";
modalImg.src = images.getAttribute("data-highres");
};
}
<div class="container" style="width: 320px; height: 530px;">
<div class="pic_container" onclick="myFunction()">
<img src="https://i.pinimg.com/originals/de/a5/f1/dea5f10ecf2080ea8e5312ff9fa0db56.jpg"
data-highres="https://i.pinimg.com/originals/de/a5/f1/dea5f10ecf2080ea8e5312ff9fa0db56.jpg" class="image" style="width: 100%; height: auto;">
</div>
<h3 class="productName" style="padding: 0px !important; margin: 0px !important;">T-Shirt</h3>
<p class="productDisc" style="padding: 0px !important; margin: 0px !important;">Threadbare is currently sold in the UK, across Europe, Canada and America</p>
</div>
<div id="myModal" class="modal">
<!-- Close button -->
<span id="close_model"class="close">amp;times;</span>
<!-- Modal content -->
<img class="modal-content" id="modal-image">
</div>
Комментарии:
1. Я сделал вам фрагмент. Пожалуйста, отредактируйте его и добавьте соответствующие HTML и CSS
Ответ №1:
Это будет работать лучше. Если у вас есть jQuery, ИСПОЛЬЗУЙТЕ его.
Я удалил встроенный onclick
$(function() {
const $modal = $('#myModal');
const $modalImage = $('#modal-image');
$('.container').on('click', '.image', function() { // assuming .container is STATIC!
$modalImage.attr('src', $(this).data('highres'));
$modal.show();
})
$('#close_model').on('click', function() {
$modal.hide();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container" style="width: 320px; height: 530px;">
<div class="pic_container">
<img src="https://i.pinimg.com/originals/de/a5/f1/dea5f10ecf2080ea8e5312ff9fa0db56.jpg" data-highres="https://i.pinimg.com/originals/de/a5/f1/dea5f10ecf2080ea8e5312ff9fa0db56.jpg" class="image" style="width: 100%; height: auto;">
</div>
<h3 class="productName" style="padding: 0px !important; margin: 0px !important;">T-Shirt</h3>
<p class="productDisc" style="padding: 0px !important; margin: 0px !important;">Threadbare is currently sold in the UK, across Europe, Canada and America</p>
</div>
<div id="myModal" class="modal">
<!-- Close button -->
<span id="close_model" class="close">amp;times;</span>
<!-- Modal content -->
<img class="modal-content" id="modal-image">
</div>
Комментарии:
1. пожалуйста, посмотрите приведенный выше код, который я отредактировал. Спасибо.
2. У меня не хватало
=
я обновил свой код, чтобы соответствовать вашему классу3. работает идеально в коде Visual Studio, но та же проблема не работает в Visual Studio
4. если я добавлю onClick(), то он будет работать в Visual Studio, но при втором щелчке..
5. Я изменил
$('.container').on('click', '.image', function() {
, но я предполагаю, что это СТАТИЧЕСКИЙ контейнер