【发布时间】:2011-08-03 06:48:35
【问题描述】:
我试图在单击 div.menuitem 时选中复选框,然后它应该更改类并在具有 class 的 hidediv 的 div 中显示内容。当再次单击 div.menuitem 时,它应该删除该类并再次隐藏 div 并取消选中该复选框。
我想做的事:
仅在按下菜单项时显示 hidediv 的内容。 (应选中复选框)
按下菜单项时,应选中复选框
再次单击菜单项时,hidediv 应再次隐藏。 (复选框未选中)
并且复选框应该取消选中
我的菜单表格说明:
<div class="menuitem">
1.Company1
</div>
<div class="hidediv">
1.1 Company 1.1
1.2 Company 1.2
</div>
<div class="menuitem">
1.Company2
</div>
<div class="hidediv">
1.1 Company 2.1
1.2 Company 2.2
</div>
我以前的 Jquery 代码,只有在单击复选框时才会触发。我要漂亮 与此类似的功能,在单击 div 时也应触发复选框:
$('.menuitem input:checkbox').change(function(){
if($(this).is(':checked')) {
$('div.hidediv').addClass('someclass').show(200); // not needed it there is another way of identifying the div later to add to hidediv class again.
$('div.hidediv').removeClass('hidediv');
} else {
$('div.someclass').addClass('hidediv').hide(200);
}
});
});
到目前为止我的 Jquery(不工作):
$('.menuitem').click(function(e){
$(this).addClass('menuclicked');
$('div.hidediv').addClass('clicked').show(200);
$('div.hidediv').removeClass('hidediv');
} else {
$('div.someclass').addClass('hidediv').hide(200);
}
$('.menuclicked').click(function(e){
$('div.someclass').addClass('hidediv').hide(200);
});
我的 HTML:
<form accept-charset="UTF-8" action="/" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
<div class="menuitem">
<label for="search_company1">company1</label>
<input name="search[company1_is_true]" type="hidden" value="0" /><input id="search_company1_is_true" name="search[company1_is_true]" type="checkbox" value="1" />
</div>
<div class="menuitem">
<label for="search_company3">company3</label>
<input name="search[company3_is_true]" type="hidden" value="0" /><input id="search_company3_is_true" name="search[company3_is_true]" type="checkbox" value="1" />
</div>
<div class="hidediv">
<div class="menuitem">
<label for="search_company2">company2</label>
<input name="search[company2_is_true]" type="hidden" value="0" /><input id="search_company2_is_true" name="search[company2_is_true]" type="checkbox" value="1" />
<div>
</div>
<input id="search_submit" name="commit" style="display:none;" type="submit" value="Submit" />
</form>
【问题讨论】:
-
发布的“Jquery so far”无效 - 大括号不平衡,
else没有if...第五行的右大括号在 else 匹配到开头之前- 函数本身的大括号。 -
您有 两个 可见复选框,而 一个 隐藏。两个可见复选框中的哪一个应该显示隐藏的复选框?
-
隐藏复选框的父级
-
您的编辑稍微澄清了一些事情,但对于哪个可见复选框应该导致隐藏复选框出现/消失仍然模棱两可。至于您的评论:没有一个复选框是另一个复选框。它们都在同一个
form内,但这并不能真正澄清任何事情。 -
例如,如果单击可见复选框编号 2,则应为 hidediv 编号 2(可见复选框的子项)
标签: javascript jquery