Reputation: 89
I'm trying to write some simple jQuery to display class bl3
when class blc3
is clicked.
I've got it working to show every class bl3
when a blc3
class is clicked, but I want it to open only the specific bl3
that relates to the clicked blc3
.
HTML :
<div class="product pro">
<img class="product-img pro" src="'.$product[" imagesrc "].'"/>
<div class="product-actions pro">
<div class="info-block pro bl3" style="display:none;">
<div class="product-title pro">Ships to:</div>
<div class="product-description pro">Days:</div>
<div class="product-sale pro">UK</div>
<div class="product-prize pro">7</div>
<div class="button-buy pro">Buy now</div>
<div class="add pro">Add</div>
</div>
</div>
<div class="nav titlen pro">TESTING</div>
<div class="nav pro boxp">
<ul>
<li class="active blc1"><span class="icon-tag f15"></span> '.$product["price"].'
<br>
</li>
<li class="blc2"><span class="icon-time f15"></span> '.$product["stime"].'
<br>
</li>
<li class="blc3"><span class="icon-plane f15"></span> '.$product["sto"].'
<br>
</li>
<li><span class="icon-zoom-in f15"></span> '.$product["sto"].'
<br>
</li>
</ul>
</div>
</div>
JQUERY :
$j(".blc3").click(function() {
$j(this).parent().prev('.bl3').css('display','block');
});
Unfortunately, this does not select the correct element.
The jQuery below works for displaying all elements with class bl3
:
$j('.bl3').css('display','block');
But I want to display only the one that relates to the clicked blc3
.
How to just display the one appropriate bl3
?
Upvotes: 1
Views: 967
Reputation: 29188
I suggest the jQuery selector below. For each .blc3
that is clicked, it looks for the parent div.product
and then searches for a .bl3
in that element.
$('.blc3').on('click',function(){
$(this).closest('div.product').find('.bl3').show();
});
Documentation: closest(), find()
Test below:
$('.blc3').on('click', function() {
$(this).closest('div.product').find('.bl3').show();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="product pro">
<img class="product-img pro" src="'.$product[" imagesrc "].'"/>
<div class="product-actions pro">
<div class="info-block pro bl3" style="display:none;">
<div class="product-title pro">Ships to:</div>
<div class="product-description pro">Days:</div>
<div class="product-sale pro">UK</div>
<div class="product-prize pro">7</div>
<div class="button-buy pro">Buy now</div>
<div class="add pro">Add</div>
</div>
</div>
<div class="nav titlen pro">TESTING</div>
<div class="nav pro boxp">
<ul>
<li class="active blc1"><span class="icon-tag f15"></span> '.$product["price"].'
<br>
</li>
<li class="blc2"><span class="icon-time f15"></span> '.$product["stime"].'
<br>
</li>
<li class="blc3"><span class="icon-plane f15"></span> '.$product["sto"].'
<br>
</li>
<li><span class="icon-zoom-in f15"></span> '.$product["sto"].'
<br>
</li>
</ul>
</div>
</div>
<div class="product pro">
<img class="product-img pro" src="'.$product[" imagesrc "].'"/>
<div class="product-actions pro">
<div class="info-block pro bl3" style="display:none;">
<div class="product-title pro">Ships to:</div>
<div class="product-description pro">Days:</div>
<div class="product-sale pro">UK</div>
<div class="product-prize pro">7</div>
<div class="button-buy pro">Buy now</div>
<div class="add pro">Add</div>
</div>
</div>
<div class="nav titlen pro">TESTING</div>
<div class="nav pro boxp">
<ul>
<li class="active blc1"><span class="icon-tag f15"></span> '.$product["price"].'
<br>
</li>
<li class="blc2"><span class="icon-time f15"></span> '.$product["stime"].'
<br>
</li>
<li class="blc3"><span class="icon-plane f15"></span> '.$product["sto"].'
<br>
</li>
<li><span class="icon-zoom-in f15"></span> '.$product["sto"].'
<br>
</li>
</ul>
</div>
</div>
Upvotes: 5