Reputation: 11
i have problem with toggleClass function for same classes separated
How to make it works for same .toglebox and same .slider separated..
Thanks in advance for any advice.
JS:
$('.togglebox').on('click', function() {
$('.slider').toggleClass('opened closed');
});
HTML look like this:
<div class="containerslider">
<div class="slider opened">
<p>Lorep ipsum </p>
<p class="slider_wiecej">
<a href="/portfolio" target="_self" class="read_more_box_slider">more</a>
<a class="togglebox"></a>
</p>
</div>
</div>
<div class="containerslider">
<div class="slider opened">
<p>Lorep ipsum </p>
<p class="slider_wiecej">
<a href="/portfolio" target="_self" class="read_more_box_slider">more</a>
<a class="togglebox"></a>
</p>
</div>
</div>
Upvotes: 1
Views: 45
Reputation: 15846
Using this
object inside the function is what you need. Use this to find parent .slider
$('.togglebox').on('click', function(e) {
e.preventDefault();
$(this).closest('div.slider').toggleClass('opened closed');
});
.opened{
border:1px solid red;
}
.closed{
border:1px solid green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="containerslider">
<div class="slider opened">
<p>Lorep ipsum </p>
<p class="slider_wiecej">
<a href="/portfolio" target="_self" class="read_more_box_slider">more</a>
<a class="togglebox">s</a>
</p>
</div>
</div>
<div class="containerslider">
<div class="slider opened">
<p>Lorep ipsum </p>
<p class="slider_wiecej">
<a href="/portfolio" target="_self" class="read_more_box_slider">more</a>
<a class="togglebox">s</a>
</p>
</div>
</div>
Upvotes: 0
Reputation: 85545
$('.togglebox').on('click', function() {
$(this) //refer to clicked element
.closest('.slider') //find nearest parent div with class 'slider'
.toggleClass('opened closed');//toggle the class
});
Upvotes: 1