取消选中复选框时无法隐藏段落

时间:2011-06-01 18:47:42

标签: javascript jquery input checkbox

我正在尝试隐藏一个段落,当时取消选中复选框我只能在选中时显示。

这是我的jquery:

$('.pharmacy').click(function(){
$('.pcsoc').show();
});

如果取消选中该段落,我该怎么办?

4 个答案:

答案 0 :(得分:5)

改为绑定到更改事件:

$('.pharmacy').change(function(e){
  $('.pcsoc').toggle();
});

或者你可以检查.is(':checked')是否自己隐藏/显示(更多防弹)。

$('.pharmacy').change(function(e){
  if ($(this).is(':checked'))
    $('.pcsoc').show();
  else
    $('.pcsoc').hide();
});

答案 1 :(得分:3)

尝试:

$('.pharmacy').click(function(){
  $('.pcsoc').toggle();
});

答案 2 :(得分:2)

您需要测试是否已选中或未选中:

$('.pharmacy').click(function(){
  if ($(this).is(':checked')) {
    $('.pcsoc').show();
  }
  else $('.pcsoc').hide();
});

编辑按照Brad Christie的建议绑定到change()方法可能更好。

答案 3 :(得分:1)

您可以检查复选框是否已选中并做出相应的响应:

$('.pharmacy').click(function() {
    if(this.checked)
        $('.pcsoc').show();
    else
        $('.pcsoc').hide();
});