javascript - 在 2 个 div 之间切换
问题描述
我想在 2 个 div 之间切换,这样当我单击其中一个时,它的边框和标题变为红色,我希望另一个 div 熄灭。所以它就像他们之间的选择我不知道我在哪里做错了我添加(IF)所以我可以让它发生但它不起作用请帮助我。
$(".container").on("click" , function(){
$(this).toggleClass("active");
$(".header", this).toggleClass("active2");
if ($(".box1").hasClass("active")) {
$(".box2").removeClass("active");
$("h2", ".box2").removeClass("active2");
}if ($(".box2").hasClass("active")) {
$(".box1").removeClass("active");
$("h2", ".box1").removeClass("active2");
}
});
body{
padding: 3em;
}
.box1, .box2{
padding: 2em;
border: 1px solid silver;
margin-top: 2em;
}
.active{
border-color: red;
}
.active2{
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container box1">
<h2 class="header">Boys</h2>
<hr>
<p>Benjamin</p>
<p>David</p>
</div>
<div class="container box2">
<h2 class="header">Girls</h2>
<hr>
<p>Sara</p>
<p>Tania</p>
</div>
解决方案
你不需要很多代码来完成这项工作。添加.active
到单击的元素并从其兄弟元素中删除类。
$(".container").on("click", function() {
$(this).toggleClass("active").siblings().removeClass("active");
});
body{padding: 3em}
.box1, .box2{
padding: 2em;
border: 1px solid silver;
margin-top: 2em;
}
.active {border-color: red}
.active .header{color: red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container box1">
<h2 class="header">Boys</h2>
<hr>
<p>Benjamin</p>
<p>David</p>
</div>
<div class="container box2">
<h2 class="header">Girls</h2>
<hr>
<p>Sara</p>
<p>Tania</p>
</div>
推荐阅读
- css - 如何在 rtl css 和 ltr css 生成的 rtl css 文件之间进行选择
- c# - 如何修复“无效的登录令牌”。尝试将经过身份验证的用户与 AWS 和 Cognito 用户池一起使用时
- visual-studio - Visual Studio 2017 中的 ROOT cern
- javascript - Git 在发出拉取请求时会看到分支中的许多更改
- php - PHP数组:条件和
- android - 以编程方式将位置添加到推文
- vue.js - 具有隐藏/显示面板的灵活布局
- docker - 如何在 Docker 上为 Vue-router 配置 nginx
- three.js - 如何设置初始相机位置(Three.js/VR)?
- python - Anaconda 环境问题