Javascript 如果复选框为“显示div”,则选中“隐藏上一个打开的div”
这是关于这个帖子的: 我想问一下如何使用此代码,但每次单击另一个复选框时,它都会隐藏上一个div并打开一个新的div。一次只显示一个div/内容,而不是同时显示两个open。谢谢Javascript 如果复选框为“显示div”,则选中“隐藏上一个打开的div”,javascript,jquery,html,Javascript,Jquery,Html,这是关于这个帖子的: 我想问一下如何使用此代码,但每次单击另一个复选框时,它都会隐藏上一个div并打开一个新的div。一次只显示一个div/内容,而不是同时显示两个open。谢谢 演示:您必须使用change而不是单击函数,并在evaluate函数内部,在开始处添加以下行 function evaluate(){ var item = $(this); var relatedItem = $("#" + item.attr("data-related-item")).parent(); if(
演示:您必须使用
change
而不是单击
函数,并在evaluate函数内部,在开始处添加以下行
function evaluate(){
var item = $(this);
var relatedItem = $("#" + item.attr("data-related-item")).parent();
if(item.is(":checked")){
relatedItem.fadeIn();
}else{
relatedItem.fadeOut();
}
}
$('input[type="checkbox"]').click(evaluate).each(evaluate);
在这里观看如果我理解正确,您一次只希望打开一个
,它应该与复选框相关。我的解释是,您一次也只选中复选框,所以所有其他复选框都需要取消选中
解决方案1:使用单选按钮
解决方案2:取消选中所有复选框,然后重新选中当前复选框
显示
的解决方案基于解决方案2。只需先隐藏所有
s,然后显示相关的
。为所有的
指定一个特定的类(例如class=“toggling”
)或名称,以用作关闭全部的选择器
$('input[type="checkbox"]').not($(this)).prop('checked',false).trigger('change');
$('input[type=“checkbox”]”)。单击(评估)。每个(评估);这样做是为了处理每个复选框,而不是针对特定的复选框。请编辑您的问题标题。标题应该是问题,而不是预期结果类似的问题在这里,当你选中另一个复选框时,你需要取消选中一个复选框,比如单选按钮。比如手风琴?
$('input[type="checkbox"]').not($(this)).prop('checked',false).trigger('change');
$('input[type="checkbox"]').on("click", function() {
var item = $(this);
var relatedItem = $("#" + item.attr("data-related-item")).parent();
$('.toggling').fadeOut(); //hide all
relatedItem.FadeIn(); //show the current one
});