Reputation: 9855
I have an accordion that...
dd
section to expand.I have the following example that I cant get working...
jQuery
$(".accordion > dt > a").click(function () {
$(".accordion a").removeClass('active');
if ($('.accordion > dd').next().is(':visible')) {
$(this).removeClass('active');
$('.accordion > dd').slideUp(200);
} else {
$(this).addClass('active');
$(this).parent().next().slideDown();
}
});
Upvotes: 0
Views: 103
Reputation: 6002
I have fixed few things in your code and now it works like any other standard accordion.
JS Code :
$(".accordion > dt > a").click(function () {
var $this = $(this);
var content = $this.parent().next();
if (!$this.hasClass('active')) {
$(".accordion a").removeClass('active');
$('.accordion > dd').slideUp(200);
$this.addClass('active');
content.slideDown();
} else {
$this.removeClass('active');
content.slideUp(200);
}
});
Live Demo @ JSfiddle:
http://jsfiddle.net/dreamweiver/m0zehxpc/12/
Upvotes: 0
Reputation: 2480
$("dt").click(function () {
$('dd').slideUp();
$(this).next('dd').slideDown();
});
Upvotes: 0
Reputation: 569
There are much answers already.However you can try this code at thisfiddle http://jsfiddle.net/m0zehxpc/2/
var datapanel = $('.accordion > dd').hide();
$('.accordion > dt > a').click(function() {
datapanel.slideUp(200);
$(this).parent().next().slideDown();
return false;
});
Upvotes: 0
Reputation: 29683
Something like this
$(".accordion > dt > a").click(function () {
$(".accordion a").removeClass('active');
$(this).addClass('active');
$('.accordion > dd').not($(this)).slideUp(200);
$(this).parent().next('dd').slideDown(200)
});
You can just ignore .not
part in this
$('.accordion > dd').not($(this)).slideUp(200);
Upvotes: 1
Reputation: 9060
Try this code :
$(".accordion > dt > a").click(function () {
var $myDD = $(this).parent().next();
$(".accordion a").removeClass('active');
$(this).addClass('active');
$('dd').slideUp();
if ($myDD.is(':visible'))
$myDD.slideUp();
else
$myDD.stop().slideDown();
});
.about-us .accordion {
padding: 0 1.6em;
max-width: 970px;
margin: 0 auto 50px auto;
}
.about-us .accordion dt {
margin: 0 0 5px 0;
}
.about-us .accordion dt a {
background:#EDEFEF no-repeat scroll right 0px !important;
color: #4e5663;
display: block;
text-transform: uppercase;
padding: 20px;
text-decoration: none;
font-weight: 500;
font-size: 16px;
}
.about-us .accordion dd {
display: none;
padding: 20px;
margin: -7px 0 5px 0;
border: 2px solid #00b0e4;
}
body.about-us .accordion a.active {
background:#00B0E4 no-repeat scroll right -67px!important;
color:#fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="about-us">
<dl class="accordion"> <dt>
<a href="#title">Title</a>
</dt>
<dd style="">
<p>lorem upsum dolor sit amet</p>
</dd> <dt>
<a href="#title">Title</a>
</dt>
<dd style="">
<p>lorem upsum dolor sit amet</p>
</dd> <dt>
<a href="#title">Title</a>
</dt>
<dd style="">
<p>lorem upsum dolor sit amet</p>
</dd> <dt>
<a href="#title">Title</a>
</dt>
<dd style="">
<p>lorem upsum dolor sit amet</p>
</dd> <dt>
<a href="#title">Title</a>
</dt>
<dd style="">
<p>lorem upsum dolor sit amet</p>
</dd>
</dl>
</div>
Upvotes: 0