2012-01-12 100 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