1
我有一個簡單的jQuery選擇菜單,根據選擇顯示內容。簡單的鏈式選擇菜單錯誤
這是我的jsFiddle &我的代碼如下。
錯誤#1:當我最初選擇US
時,State
下拉列表不出現。在此之前,我必須先選擇UK
,然後再選擇US
。爲什麼?
錯誤#2:現在,我使用的是: if(jQuery('#statecat').val()=="ak") jQuery('.ak').show(); });
- 有沒有更有效的方式來做到這一點,所以我沒有對所有50個州這樣做呢?
錯誤#3:當我從Alaska
回去Choose a State...
,該US
結果是空白。爲什麼?
非常感謝任何幫助。
CODE
<form method="get" action="/" id="languageSwitch">
<fieldset>
<select name='cat' id='cat' class='postform' >
<option value='0' selected='selected'>Choose a country…</option>
<option class="level-0" value="united-kingdom">United Kingdom</option>
<option class="level-0" value="us">US</option>
</select>
<script type="text/javascript">
jQuery('#cat').change(function(){
jQuery('#cat').change(function() {
jQuery("#statecat").toggle(jQuery(this).val() == "us");
});
if(jQuery('#cat').val()=="0")
jQuery('form#languageSwitch').siblings('div').show();
else{
jQuery('form').siblings('div').hide();
jQuery('.'+jQuery('#cat').val()).show();
}
});
</script>
</fieldset>
</form>
<form method="get" action="/" id="stateSwitch">
<fieldset>
<select name='statecat' id='statecat' class='postform' >
<option value='0' selected='selected'>Choose a state…</option>
<option class="level-0" value="ak">Alaska</option>
<option class="level-0" value="wy">Wyoming</option>
</select>
<script type="text/javascript">
jQuery('#statecat').change(function(){
jQuery('.state1').each(function(){jQuery(this).hide(); });
if(jQuery('#statecat').val()=="ak")
jQuery('.ak').show();
});
</script>
</fieldset>
</form>
<div class="united-kingdom">
<h2>United Kingdom</h2>
</div>
<div class="us">
<h2>US</h2>
<div class="ak state1">
<h2>Alaska</h2><ul>
<li class="animal-listing" id="post-123">
<a href="http://localhost:8888/test/wordpress/company/kiwi-kompany/">Alaska Test</a><br />
Address:<br />Address<br />
Country: Alaska<br />
URL: http://www.somesite.co.nz<br />
Telephone: 01902<br />
Fax: 01293
</li>
</div>
<div class="wy state1">
<h2>Wyoming</h2>
</div>
</div>
哇,你去哪兒了我所有的生活? :-D 這很好用,Rory!最後的錯誤,爲什麼當我從「阿拉斯加」回到「選擇一個國家......」美國結果消失的時候呢?我在你的jsfiddle上試過了,問題依然存在。幫幫我? – michaelmcgurk 2014-11-06 07:55:01
這是因爲'Choose a state ...'的值是'0',並且沒有'.0' div顯示。這肯定是正確的行爲 - 如果沒有選擇狀態,則不應顯示狀態,對嗎? – 2014-11-06 08:00:25
這是一個有趣的觀點。我總是默認顯示全部。是否有可能調整我的代碼,讓這種情況發生?非常感謝。 – michaelmcgurk 2014-11-06 08:02:10