admin管理员组文章数量:1399815
I have made JQUERY Accordions which work fine.
HTML:
<div id="accordion">
<div class="title"><span>Accordian 1</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Accordian 2</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Accordian 3</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Close all the accordions</span></div>
</div>
JQUERY
$(document).ready(function() {
$('#accordion .hide').hide();
$('#accordion .title span').click(function(){
$('#accordion .hide').slideUp();
$(this).parent().next().slideDown();
return false;
});
});
What I would like is when a user clicks an accordion to open it, and then clicks it a second time that it would close.
So 1st click = open, 2 click = close.
How would I go about this?
Thanks
I have made JQUERY Accordions which work fine.
HTML:
<div id="accordion">
<div class="title"><span>Accordian 1</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Accordian 2</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Accordian 3</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Close all the accordions</span></div>
</div>
JQUERY
$(document).ready(function() {
$('#accordion .hide').hide();
$('#accordion .title span').click(function(){
$('#accordion .hide').slideUp();
$(this).parent().next().slideDown();
return false;
});
});
What I would like is when a user clicks an accordion to open it, and then clicks it a second time that it would close.
So 1st click = open, 2 click = close.
How would I go about this?
Thanks
Share Improve this question asked Feb 8, 2014 at 18:11 mickzermickzer 6,3585 gold badges38 silver badges60 bronze badges 2- Why not slideToggle() ?? – Krunal Panchal Commented Feb 8, 2014 at 18:18
- @user2620746 jsfiddle/pranavcbalan/hy4kF/3 – Pranav C Balan Commented Feb 8, 2014 at 18:25
3 Answers
Reset to default 2HTML :
<div id="accordion">
<div class="title"><span>Accordian 1</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Accordian 2</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="title"><span>Accordian 3</span></div>
<div class="hide">
<p>hidden content</p>
</div>
<div class="close"><span>Close all the accordions</span></div>
</div>
Use slideToggle()
, to toggle between slideUp
and slideDown
$(document).ready(function() {
$('#accordion .hide').hide();
$('#accordion .title span').click(function(){
$(this).parent().next()
.slideToggle()
.siblings('.hide').slideUp();
return false;
});
$('.close').click(function(){
$('#accordion .hide').slideUp();
});
});
Fiddle Demo
You can use the following solution to make the accordion close on the second click in jQuery:
$("#accordion").accordion({
heightStyle: "content",
autoHeight: false,
clearStyle: true,
collapsible: true, //this makes the selected tab close on second click
});
Try this:
$('#accordion .hide').hide();
$('#accordion .title span').click(function () {
$(this).parent().next().slideToggle().siblings('.hide').slideUp();
});
$('#accordion .title span:last').click(function () {
$('#accordion .hide').slideUp();
});
Fiddle Demo
本文标签: javascriptMake Accordion Close on second click JQUERYStack Overflow
版权声明:本文标题:javascript - Make Accordion Close on second click JQUERY - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744197807a2594823.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论