<input type="checkbox" data-related-item="title1">
<span class="caption">Title</span>
<div class="hidden">
<h2>Title</h2>
<input type="text" id="title1">
<span class="caption">Lorem</span>
</div>
<hr>
<input type="checkbox" data-related-item="title2" checked>
<span class="caption">Title</span>
<div class="hidden">
<h2>Title</h2>
<input type="text" id="title2">
<span class="caption">Lorem</span>
</div>
的Javascript
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);
这是关于这篇文章:if check box is checked display div
我想问一下如何使用此代码,但每次单击另一个复选框时,它会隐藏前一个div并打开一个新代码。只是一次显示一个div / content而不是同时显示两个div / content。感谢。
答案 0 :(得分:0)
您必须使用change
代替click
函数和内部评估函数,在开头添加以下行
$('input[type="checkbox"]').not($(this)).prop('checked',false).trigger('change');
在这里观看fiddle
答案 1 :(得分:0)
如果我理解正确,您希望一次只打开一个<div>
,这应该与复选框相关联。我解释一下,你一次只选中复选框,所以其他所有复选框都需要取消选中。
解决方案1:使用单选按钮
解决方案2:取消选中所有复选框,然后重新检查当前复选框。
显示<div>
的解决方案基于解决方案2.首先隐藏所有<div>
,然后显示相关的<div>
。为您的所有<div>
提供某个类(例如class="toggling"
)或名称,以用作关闭所有内容的选择器。
$('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
});