我有4个街区,每当我按下其中一个时,里面会出现一个复选框。如果我点击另一个块,当前复选框将消失,另一个复选框将出现,这是好的。问题是,如果我点击一个块并出现复选框,当我按下该复选框时,该块将消失,它不应该。
我有以下HTML代码:
<div class="item">1 <input class="hidden" type="checkbox"></div>
<div class="item">2 <input class="hidden" type="checkbox"></div>
<div class="item">3 <input class="hidden" type="checkbox"></div>
<div class="item">4 <input class="hidden" type="checkbox"></div>
以下css代码:
.hidden {
display: none;
}
和javascript代码:
$(".item").click(function(){
$(".item").find('input').hide();
$(this).find('input').show('fast');
});
我可以做些什么来隐藏除当前复选框之外的所有复选框(我点击的块)?
答案 0 :(得分:5)
像这样使用.not()
过滤器
$(".item").click(function(){
$(".item").not(this).find('input').hide();
});
编辑:
您可能想要考虑用户是否想要改变主意,并重新启用所有选项。你可以这样做:
$(".item").click(function(){
var items = $(".item").not(this).find('input');
if($('input',this).is(':checked')) items.hide();
else items.show();
});
答案 1 :(得分:1)
尝试
$(".item").click(function(){
$(".item").find('input').addClass('hidden');
$(this).find('input').removeClass('hidden');
});