javascript - HTML- div 在下次点击时显示和隐藏
问题描述
我试图进行在线考试,我想在不点击它的情况下制作第一个 div,当我点击第二个按钮时,第一个 div 关闭,然后它打开了两个 div,依此类推
现在这段代码正在工作,但你需要手动打开和关闭它,你可以同时打开它,它会与其他 div 冲突
PS:我在这里检查了一些类似的问题,但没有显示我想要的结果
$(document).ready(function(){
$(".slidingDiv").hide();
$('.toggle-next-div').click(function(){
$(this).next().slideToggle();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="toggle-next-div">1</button>
<div class="slidingDiv">
<p>test1</p>
</div>
<button class="toggle-next-div">2</button>
<div class="slidingDiv">
<p>test2</p>
</div>
<button class="toggle-next-div">3</button>
<div class="slidingDiv">
<p>test3</p>
</div>
<button class="toggle-next-div">4</button>
<div class="slidingDiv">
<p>test4</p>
</div>
<button class="toggle-next-div">5</button>
<div class="slidingDiv">
<p>test5</p>
</div>
解决方案
不隐藏您需要的第一个元素:not
并隐藏除此之外的所有元素.siblings('.slidingDiv')
$(document).ready(function() {
$(".slidingDiv:not(:first)").hide();
$('.toggle-next-div').click(function() {
$(this).next().siblings('.slidingDiv').hide();
$(this).next().slideToggle();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="toggle-next-div">1</button>
<div class="slidingDiv">
<p>test1</p>
</div>
<button class="toggle-next-div">2</button>
<div class="slidingDiv">
<p>test2</p>
</div>
<button class="toggle-next-div">3</button>
<div class="slidingDiv">
<p>test3</p>
</div>
<button class="toggle-next-div">4</button>
<div class="slidingDiv">
<p>test4</p>
</div>
<button class="toggle-next-div">5</button>
<div class="slidingDiv">
<p>test5</p>
</div>
编辑:
$(document).ready(function() {
$(".slidingDiv:not(:first)").hide();
$('.toggle-next-div').click(function(e) {
if($(this).next('.slidingDiv').is(":visible")){
e.preventDefault();
return;
}
$(this).next().siblings('.slidingDiv').hide();
$(this).next().slideToggle();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="toggle-next-div">1</button>
<div class="slidingDiv">
<p>test1</p>
</div>
<button class="toggle-next-div">2</button>
<div class="slidingDiv">
<p>test2</p>
</div>
<button class="toggle-next-div">3</button>
<div class="slidingDiv">
<p>test3</p>
</div>
<button class="toggle-next-div">4</button>
<div class="slidingDiv">
<p>test4</p>
</div>
<button class="toggle-next-div">5</button>
<div class="slidingDiv">
<p>test5</p>
</div>
推荐阅读
- javascript - 从 json 文件中检测代码中使用了哪些属性
- typescript - 使用 Type Guards 在 typescript 上运行 jest 时出错
- google-calendar-api - Google 服务帐户:委托域范围的授权以仅模拟一个用户
- tcl - 我们可以用 Tcl_FSOpenFileChannel 打开 gz 文件吗
- javascript - 我们可以在html/js/php中像视频编辑器一样混合音视频吗
- node.js - 从 API 中的请求中获取 FormData
- python - 在 DataFrame 中按结果过滤组
- .net - EF6 DbContext 在处置时是否回滚打开的事务?
- tensorflow - 在连接深度特征向量和手工制作的特征向量后,我可以使用最终池化层来找到最佳共同特征吗?
- c++ - 引用其他文件中的对象导致“...”未被捕获(节点 MCU)