Reputation:
Lorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsum
Upvotes: 2
Views: 243
Reputation: 5402
Try this:
$("#toggle > li > div").click(function(){
if(false == $(this).next().is(':visible')) {
$('#toggle ul').slideUp();
$("span.minus-btn").removeClass('minus-btn'); // When slide goes up remove 'minus-btn' class
}
$(this).next().slideToggle();
});
$("#toggle > li > div").click(function() {
$("#toggle > li > div").removeClass("active");
$(this).addClass('active');
if($(this).hasClass("active")){
$("span.plus-btn", this).toggleClass('minus-btn');
}
});
Upvotes: 1
Reputation: 8282
Try this,
$("#toggle > li > div").click(function(){
if(false == $(this).next().is(':visible')) {
$('#toggle ul').slideUp();
$("span.minus-btn").removeClass('minus-btn');
}
$(this).next().slideToggle();
});
$("#toggle > li > div").click(function() {
$("#toggle > li > div").removeClass("active");
$(this).addClass('active');
if($(this).hasClass("active")){
$(this).find("span.plus-btn").toggleClass('minus-btn');
}
});
Upvotes: 0
Reputation: 1125
you should remove 'minusbtn' class when it slides up.
replace this with your code :
$("#toggle > li > div").click(function(){
if(false == $(this).next().is(':visible')) {
$('#toggle ul').slideUp();
$("#toggle *").removeClass('minus-btn');
}
$(this).next().slideToggle();
});
$("#toggle > li > div").click(function() {
$("#toggle > li > div").removeClass("active");
$(this).addClass('active');
if($(this).hasClass("active")){
$("span.plus-btn", this).toggleClass('minus-btn');
}
});
Upvotes: 0
Reputation: 18
You change the plus/minus icons only on the clicked element. You could change all span elements to "plus-btn" and than the active one to minus. Like you first remove all active classes $("#toggle > li > div").removeClass("active");
Update:
$("#toggle > li > div").click(function() {
$("#toggle > li > div").removeClass("active");
$(this).addClass('active');
if($(this).hasClass("active")){
$("span.plus-btn", this).toggleClass('minus-btn');
} else {
$('.minus-btn').removeClass('minus-btn');
}
});
Upvotes: 0