另一个collaspe(带有按钮1)内部有一个折叠(带有按钮2)。 当父对象合拢时,按钮1的背景色为蓝色(主色),当按钮1未合拢时,背景色为黄色(bg警告)。当我们单击按钮2时,颜色保持黄色,但是当按钮2再次单击并折叠时,按钮1的颜色变为蓝色。我想让按钮1在不折叠的情况下保持黄色,无论她的孩子是否折叠。
谢谢你,我的英语不好。
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="my-2">
<button class="btn btn-primary" id="btn1" type="button" name="button" data-toggle="collapse" data-target="#collapsebtn" aria-expanded="false" aria-controls="collapsebtn">
button 1
</button>
</div>
<div class="collapse" id="collapsebtn">
<div class="mb-2">
<button class="btn btn-dark btn-sm" type="button" name="button" data-toggle="collapse" data-target="#collapsebtn2" aria-expanded="false" aria-controls="collapsebtn2">
button 2
</button>
</div>
<div class="collapse border border-primary" id="collapsebtn2">
Lorem ipsum dolor text....
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#collapsebtn").on("show.bs.collapse", function() {
$("#btn1").removeClass("btn-primary");
$("#btn1").addClass("btn-warning");
});
$("#collapsebtn").on("hidden.bs.collapse", function() {
$("#btn1").addClass("btn-primary");
$("#btn1").removeClass("btn-warning");
});
});
</script>
</body>
</html>
答案 0 :(得分:1)
添加此代码:
$("#collapsebtn").on("hidden.bs.collapse", function() {
if(!$('#collapsebtn').hasClass('show')){
$("#btn1").addClass("btn-primary");
$("#btn1").removeClass("btn-warning");
}
});