I use a bootstrap panel and i added a span clickable icon : plus when panel body is open and minus when panel body is close, my problem now is how can i do to set it close by default(plus icon showed by default and when i click on it panel body will be opening)
above my code to do this, thanks in advance for your help.
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script>
$(document).on('click', '.panel-heading span.clickable', function (e) {
var $this = $(this);
if (!$this.hasClass('panel-collapsed')) {
$this.parents('.panel').find('.panel-body').slideUp();
$this.addClass('panel-collapsed');
$this.find('i').removeClass('glyphicon-minus').addClass('glyphicon-plus');
} else {
console.log($this);
$this.parents('.panel').find('.panel-body').slideDown();
$this.removeClass('panel-collapsed');
$this.find('i').removeClass('glyphicon-plus').addClass('glyphicon-minus');
}
});
</script>
<style>
.clickable
{
cursor: pointer;
}
.clickable .glyphicon
{
background: rgba(0, 0, 0, 0.15);
display: inline-block;
padding: 6px 12px;
border-radius: 4px
}
.panel-heading span
{
margin-top: -23px;
font-size: 15px;
margin-right: -9px;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Panel 1</h3>
<span class="pull-right clickable panel-collapsed in"><i class="glyphicon glyphicon-plus"></i></span>
</div>
<div class="panel-body">
Panel content</div>
</div>
</div>
</div>
</div>
</body>
</html>
You just need to change this:
<div class="panel-body">
To this :
<div class="panel-body" style="display:none;">
And change the slideUp() by slideDown(), and the same for slideDown() by slideUp().
Also change this:
<span class="pull-right clickable collapse in"><i class="glyphicon glyphicon-plus"></i></span>
To this:
<span class="pull-right clickable collapse in"><i class="glyphicon glyphicon-minus"></i></span>
Everything should work as you mentioned in your question now.
Here's a JSFiddle link : Try It
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With