Using php I have created several popups, that I want to appear once the button of any slide is clicked. The modal (simplified) looks something like this
JavaScript
x
@foreach($products as $key => $product)
<div class="popup">
<div>content</div>
</div>
@endforeach
After that there are the different product slides generated
JavaScript
@foreach($products as $key => $product)
<div class="item">
<div>content</div>
<span class="Open">Button</span>
</div>
@endforeach
After this I run a simple script that on button click displays the modal
JavaScript
$(document).on ('click','.Open', function () {
$('.popup').removeClass('display-none').addClass('d-flex').hide().fadeIn();
});
This part works, and on click the modal appears, however, my issue is that all of the modals appear at the same time. Is there a way to make it so that only the modal that is tied to a specific product appears when its button is clicked, rather than all of them?
Thanks a lot!
Advertisement
Answer
FIrst need to create link between popup and button as follows
JavaScript
@foreach($products as $key => $product)
<div class="popup" id="popup{{$key}}">
<div>content</div>
</div>
@endforeach
@foreach($products as $key => $product)
<div class="item">
<div>content</div>
<span class="Open" data-id="{{$key}}">Button</span>
</div>
@endforeach
and now you can have link to button and popup
JavaScript
$(document).on ('click','.Open', function () {
var $el = $(this);
$('#popup'+$el.data('id')).removeClass('display-none').addClass('d-flex').hide().fadeIn();
});
Hope this will help