【发布时间】:2011-09-06 13:29:48
【问题描述】:
我正在尝试在未选中复选框时隐藏段落,我现在只能在选中时显示。
这是我的 jquery:
$('.pharmacy').click(function(){
$('.pcsoc').show();
});
取消选中的段落如何隐藏?
【问题讨论】:
标签: javascript jquery input checkbox
我正在尝试在未选中复选框时隐藏段落,我现在只能在选中时显示。
这是我的 jquery:
$('.pharmacy').click(function(){
$('.pcsoc').show();
});
取消选中的段落如何隐藏?
【问题讨论】:
标签: javascript jquery input checkbox
您可以检查复选框是否被选中并做出适当的回应:
$('.pharmacy').click(function() {
if(this.checked)
$('.pcsoc').show();
else
$('.pcsoc').hide();
});
【讨论】:
你需要测试是勾选还是不勾选:
$('.pharmacy').click(function(){
if ($(this).is(':checked')) {
$('.pcsoc').show();
}
else $('.pcsoc').hide();
});
编辑最好按照 Brad Christie 的建议绑定到 change() 方法。
【讨论】:
$(this)包裹在一个jQuery对象中才能访问.is()
改为绑定到 change 事件:
$('.pharmacy').change(function(e){
$('.pcsoc').toggle();
});
或者您可以检查.is(':checked') 并自己隐藏/显示(更防弹)。
$('.pharmacy').change(function(e){
if ($(this).is(':checked'))
$('.pcsoc').show();
else
$('.pcsoc').hide();
});
【讨论】:
is() 版本在这里:jsfiddle.net/bradchristie/TPuB8/1
试试:
$('.pharmacy').click(function(){
$('.pcsoc').toggle();
});
【讨论】:
toggle() 可能会导致选中/未选中状态与显示/隐藏状态不同步。