2012-01-12 96 views
0

我是一种卡住的东西...其他声明不起作用

我的else语句似乎没有工作正确。

<div class="main-options"> 
    <label class="main-label" for="main-options">Main Options:</label> 
    <input class="option-a" type="radio" name="main-options"> 
    <label for="main-options">Option A</label> 
    <input class="option-b" type="radio" name="main-options"> 
    <label for="main-options">Option B</label> 
</div> 

<div class="sub-options"> 
    <label class="sub-options-label" for="sub-options">Sub Options:</label> 
    <input class="option-c" type="radio" name="sub-options"> 
    <label for="main-options">Option A</label> 
    <input class="option-d" type="radio" name="sub-options"> 
    <label for="sub-options">Option B</label> 
</div> 

的Javascript:

$('.option-b').click(function() { 
    if ($(this).is(':checked')) { 
     $('.sub-options').hide(); 
    } 
    else { 
     $('.sub-options').show(); 
    } 
}); 

的jsfiddle:http://jsfiddle.net/VcVYM/

我的目标是能够点击选项B和隐藏子选项股利。但是,当选项B没有:检查,我想子选项重新出现......

我已经成功地得到它隐藏的一次选项-B被选中,但我else语句似乎没有不显示未选中时的子选项div。

感谢您抽空看看!

d

+0

只包含的代码,最小的自包含的例子来重新创建问题。它很短。 – 2012-01-12 23:53:32

+0

,你还需要创建一个处理程序,方案A以显示子选项。 – hallie 2012-01-12 23:54:25

回答

1

您需要点击处理程序添加到两个单选按钮

$('.option-b, .option-a').click(function() { 
    if ($('.option-b').is(':checked')) { 
     $('.sub-options').hide(); 
    }    
    else { 
     $('.sub-options').show(); 
    } 
}); 
0

你是不是射击点击事件,当你点击选项 - 一个,因此如果选择-B被选中与否也不会检查。这应该工作,虽然:

$('.option-a, .option-b').click(function() { 

    if ($(this).hasClass('option-a')) { 

     $('.sub-options').hide(); 

    } 
    else { 
     $('.sub-options').show(); 
    } 

}); 
0

事件处理程序连接到选项-B,因此它不会火的时候,选择-A被clcked

$('.option-b').click(function() { $('.sub-options').hide(); }); 
$('.option-a').click(function() { $('.sub-options').show(); }); 
0

它没有显示的原因是你只请选择B的点击事件功能:

$('.option-b').click(function() { 

if ($(this).is(':checked')) { 
    $('.sub-options').hide(); 
}   
else { 
    $('.sub-options').show(); 
} 

因此点击选项A不叫什么,所以子选项永远不会被显示出来。每次点击B时,它都会被设置为true,以便部分工作。

由于这些都是你甚至不需要检查单选按钮 - 只需添加一个单击事件选项:

$('.option-a').click(function() { 

    $('.sub-options').show(); 

} 
-1

我有更新您的JS捣鼓你。现在起作用了。 http://jsfiddle.net/VcVYM/10/

+0

所有的回复都很棒,谢谢! – DougP 2012-01-13 00:16:43

+0

你可以在这里发布你的解决方案代码吗? – 2012-01-13 01:44:22