挣扎着 Bootstrap 来完成我的 show/hide 手风琴
Straggling with Bootstrap to complete my show/hide accordion
好吧,我今天开始使用 Bootstrap 并得到了一些帮助,开始让一个开关正常工作,但我需要其中 4 个开关正常工作。如您所见,如果您 运行 代码仅第一个 window 显示信息,我需要帮助的第二件事是让它工作,一次只能显示一个隐藏文本,我需要帮助的第三件事是让第一个隐藏文本在页面加载时可见。 * 这不是重复的 post 我得到的最后一个解决方案工作得很好,但不是很灵敏,而且很慢,决定尝试 Bootstrap,它看起来很有前途。
#leftpanel h1 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; border-top: 1px solid #b0a887; font-style: normal;}
#leftpanel h2 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; font-style: normal;}
#leftpanel a {margin-left: 230px;}
#demo { color: #333; font-size: 14px;}
.collapse {}
.testver { }
.testver hr {
}
.fa-angle-up {
display: none;
}
.testver i {
}
.testver .fa {
;
}
.arrow[aria-expanded="true"] .fa-angle-up {
display: inline-block;
}
.arrow[aria-expanded="true"] .fa-angle-down {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="leftpanel">
<div class="testver">
<h1>First title</h1>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
First text
</div>
<hr>
</div>
<div class="testver">
<h2>Second title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
Second text
</div>
<hr>
</div>
<div class="testver">
<h2>Third title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
Third text
</div>
<hr>
</div>
<div class="testver">
<h2>Last title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
Last Text
</div>
<hr>
</div>
</div>
ID 必须是唯一的:例如,将#demo 更改为#demo1、#demo2、#demo3 和#demo4。
单击 div 后,需要隐藏所有剩余的 div:
var currTarget = $(this).closest('a').data('target').substr(1);
$('#leftpanel').find('[id^="demo"]').not(currTarget).collapse('hide');
为了打开第一个 div,需要在 属性 中添加折叠,加上 aria-expamded,如:
<div id="demo1" class="collapse in" aria-expanded="true">
片段:
$('.testver a i').on('click', function(e) {
var currTarget = $(this).closest('a').data('target').substr(1);
$('#leftpanel').find('[id^="demo"]').not(currTarget).collapse('hide');
});
#leftpanel h1 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; border-top: 1px solid #b0a887; font-style: normal;}
#leftpanel h2 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; font-style: normal;}
#leftpanel a {margin-left: 230px;}
#demo { color: #333; font-size: 14px;}
.collapse {}
.testver { }
.testver hr {
}
.fa-angle-up {
display: none;
}
.testver i {
}
.testver .fa {
;
}
.arrow[aria-expanded="true"] .fa-angle-up {
display: inline-block;
}
.arrow[aria-expanded="true"] .fa-angle-down {
display: none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="leftpanel">
<div class="testver">
<h1>First title</h1>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo1" aria-expanded="true">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo1" class="collapse in" aria-expanded="true">
First text
</div>
<hr>
</div>
<div class="testver">
<h2>Second title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo2">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo2" class="collapse">
Second text
</div>
<hr>
</div>
<div class="testver">
<h2>Third title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo3">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo3" class="collapse">
Third text
</div>
<hr>
</div>
<div class="testver">
<h2>Last title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo4">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo4" class="collapse">
Last Text
</div>
<hr>
</div>
</div>
好吧,我今天开始使用 Bootstrap 并得到了一些帮助,开始让一个开关正常工作,但我需要其中 4 个开关正常工作。如您所见,如果您 运行 代码仅第一个 window 显示信息,我需要帮助的第二件事是让它工作,一次只能显示一个隐藏文本,我需要帮助的第三件事是让第一个隐藏文本在页面加载时可见。 * 这不是重复的 post 我得到的最后一个解决方案工作得很好,但不是很灵敏,而且很慢,决定尝试 Bootstrap,它看起来很有前途。
#leftpanel h1 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; border-top: 1px solid #b0a887; font-style: normal;}
#leftpanel h2 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; font-style: normal;}
#leftpanel a {margin-left: 230px;}
#demo { color: #333; font-size: 14px;}
.collapse {}
.testver { }
.testver hr {
}
.fa-angle-up {
display: none;
}
.testver i {
}
.testver .fa {
;
}
.arrow[aria-expanded="true"] .fa-angle-up {
display: inline-block;
}
.arrow[aria-expanded="true"] .fa-angle-down {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="leftpanel">
<div class="testver">
<h1>First title</h1>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
First text
</div>
<hr>
</div>
<div class="testver">
<h2>Second title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
Second text
</div>
<hr>
</div>
<div class="testver">
<h2>Third title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
Third text
</div>
<hr>
</div>
<div class="testver">
<h2>Last title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo" class="collapse">
Last Text
</div>
<hr>
</div>
</div>
ID 必须是唯一的:例如,将#demo 更改为#demo1、#demo2、#demo3 和#demo4。
单击 div 后,需要隐藏所有剩余的 div:
var currTarget = $(this).closest('a').data('target').substr(1);
$('#leftpanel').find('[id^="demo"]').not(currTarget).collapse('hide');
为了打开第一个 div,需要在 属性 中添加折叠,加上 aria-expamded,如:
<div id="demo1" class="collapse in" aria-expanded="true">
片段:
$('.testver a i').on('click', function(e) {
var currTarget = $(this).closest('a').data('target').substr(1);
$('#leftpanel').find('[id^="demo"]').not(currTarget).collapse('hide');
});
#leftpanel h1 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; border-top: 1px solid #b0a887; font-style: normal;}
#leftpanel h2 {font-size: 18px; font-family: 'Montserrat bold'; color:#b0a887; font-style: normal;}
#leftpanel a {margin-left: 230px;}
#demo { color: #333; font-size: 14px;}
.collapse {}
.testver { }
.testver hr {
}
.fa-angle-up {
display: none;
}
.testver i {
}
.testver .fa {
;
}
.arrow[aria-expanded="true"] .fa-angle-up {
display: inline-block;
}
.arrow[aria-expanded="true"] .fa-angle-down {
display: none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="leftpanel">
<div class="testver">
<h1>First title</h1>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo1" aria-expanded="true">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo1" class="collapse in" aria-expanded="true">
First text
</div>
<hr>
</div>
<div class="testver">
<h2>Second title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo2">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo2" class="collapse">
Second text
</div>
<hr>
</div>
<div class="testver">
<h2>Third title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo3">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo3" class="collapse">
Third text
</div>
<hr>
</div>
<div class="testver">
<h2>Last title</h2>
<a href="javascript:void(0);" class="arrow" data-toggle="collapse" data-target="#demo4">
<i class="fa fa-angle-down"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-down-01-128.png" width="40" height="40"></i>
<i class="fa fa-angle-up"><img src="https://cdn3.iconfinder.com/data/icons/faticons/32/arrow-up-01-128.png" width="40" height="40"></i>
</a>
<div id="demo4" class="collapse">
Last Text
</div>
<hr>
</div>
</div>