2012-03-28 112 views
1

我用一個腳本討論:https://wordpress.stackexchange.com/a/14711/14649jQuery的切換()問題

它的偉大工程,但是當我選擇一個不同的無線輸入,原箱不切換關閉(壞),但新框確實出現(好)。這發生在我添加的任何附加框上。

jQuery不是我的東西,我一直在研究,沒有運氣!這裏是我的代碼:

<script type='text/javascript'> 
jQuery(document).ready(function($) { 
     $('#feature_box').hide(); 
     $('#standard_lead').hide();    

     // one box 
     $('#value_feature_box').is(':checked') ? $("#feature_box").show() : $("#feature_box").hide(); 
     $('#value_feature_box').click(function() { 
      $("#feature_box").toggle(this.checked); 
     }); 

     // second box 
     $('#value_standard_lead').is(':checked') ? $("#standard_lead").show() : $("#standard_lead").hide(); 
     $('#value_standard_lead').click(function() { 
      $("#standard_lead").toggle(this.checked); 
     }); 
    }); 
</script> 

感謝您的參觀!

+0

你可以發佈相關的HTML嗎? – 2012-03-28 23:39:54

+0

你可以添加你的標記,什麼是'feature_box'?它是一個div嗎?此代碼可以使用類來代替id的模塊化。 – 2012-03-28 23:42:07

回答

0

其他盒子不消失的原因是因爲你沒有告訴它!

$('#value_feature_box').click(function() { 
    $("#feature_box").toggle(this.checked); 
}); 

這說的是當您點擊#value_feature_box時切換#feature_box的可見性。如果#value_feature_box不是複選框,則將內部代碼更改爲$("#feature_box").toggle();。如果你想要的東西消失爲好,然後告訴它:

$('#value_feature_box').click(function() { 
    $("#feature_box").toggle(); 
    $("#standard_lead").toggle(); 
}); 

價值上的切換內部()括號內告訴它要麼出現或消失(true或false)。

+0

感謝您的意見。這是我想出來的解決方案,但它非常笨重,因爲我將有大約10個盒子,而且我覺得使用'$(「#box_id」)。toggle();'可能會變得單調乏味......所以我將其分配給每個框以簡化它。謝謝! – 2012-03-29 15:44:16

0

您切換隻有一個點擊框 - 你需要切換兩種,看到這樣的jsfiddle:

有了這個(和其他盒子類似):

$('#value_feature_box').click(function() { 
     $("#feature_box").toggle(this.checked); 
    }); 

你基本上是說 - 點擊時(因此this.checked將始終爲真),切換元素。從文檔:

您使用切換的版本有showOrHide參數總是傳遞true,所以總是顯示,只有被點擊的複選框。

+0

感謝您的意見。這是我想出來的解決方案,但它非常笨重,因爲我將有大約10個盒子,而且我覺得使用'$(「#box_id」)。toggle();'可能會變得單調乏味......所以我將其分配給每個框以簡化它。謝謝! – 2012-03-29 15:44:59