У меня очень простой сайт с меню select
.Проблема с jQuery Dropdown
Когда я выберет USA
, в раскрывающемся списке появится всплывающее окно со ссылкой State
.
Когда я выбираю Georgia
, он должен показывать только записи Georgia
, однако это не сработает. Может кто-нибудь покажет мне, как я исправляю эту ошибку?
Демо:http://jsfiddle.net/28zwwwsw/
jQuery('#cat').change(function() {
var val = jQuery(this).val();
jQuery("#statecat").toggle(val == "usa");
if (val == "0")
jQuery('#countries_select').siblings('div').show();
else {
jQuery('form').siblings('div').hide();
jQuery('.' + val).show();
}
});
jQuery('#statecat').change(function() {
jQuery('.state1').hide();
if(jQuery(this).val() == '0'){
jQuery('.state1').show();
}else{
jQuery('.' + jQuery(this).val()).show();
}
});
jQuery("#countries_select select").change(function(){
if(jQuery(this).val() == "usa"){
jQuery("#state_select").show();
} else {
jQuery("#state_select").hide();
}
if(jQuery(this).val() == '0'){
jQuery("ul.countries > li").show()
}else{
jQuery("ul.countries > li").hide()
jQuery("ul.countries ." + jQuery(this).val()).css("display", "block")
}
})
jQuery('#languageSwitch #cat').change(function(){
if(jQuery('#languageSwitch #cat').val()=="0")
jQuery('form').siblings('li').show();
else{
jQuery('form').siblings('li').hide();
jQuery('.'+jQuery('#languageSwitch #cat').val()).show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form method="get" action="/" id="countries_select">
<fieldset>
\t <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="usa">USA</option>
</select>
</fieldset>
</form>
<form method="get" action="/" id="state_select" style="display:none;">
<fieldset>
\t <select name='statecat' id='statecat' class='postform' >
<option value='0' selected='selected'>Choose a state…</option>
<option class="level-0" value="ga">Georgia</option>
<option class="level-0" value="ny">New York</option>
</select>
\t
</fieldset>
</form>
<ul class="countries">
<li class="usa">
<h2>USA</h2>
<ul class="companies"> \t
<li class="company-listing" id="post-1248">
\t
\t <h4>New York Test</h4>
\t <div class="row">
\t \t <div class="medium-6 columns">
<dl class="company-data">
\t <dt>Address:</dt>
\t <dd>New York Test</dd>
\t <dt>Country:</dt>
\t <dd> USA</dd>
\t <dt>URL:</dt>
\t <dd> <a href=""></a></dd>
\t <dt>Telephone:</dt>
\t <dd> </dd>
\t <dt>Fax:</dt>
\t <dd> \t \t \t \t \t \t \t
</dl>
</div>
</li>
<li class="company-listing" id="post-1247">
\t
\t <h4>Georgia Test</h4>
\t <div class="row">
\t \t <div class="medium-6 columns">
<dl class="company-data">
\t <dt>Address:</dt>
\t <dd>Georgia</dd>
\t <dt>Country:</dt>
\t <dd> USA</dd>
\t <dt>URL:</dt>
\t <dd> <a href=""></a></dd>
\t <dt>Telephone:</dt>
\t <dd> </dd>
\t <dt>Fax:</dt>
\t <dd>
</dl>
</div>
</li>
</ul>
</li>
</ul>
Я вижу, что вы ссылаетесь на .0 класса в то время как в вашем HTML у вас есть уровень-0 класс. Я что-то упускаю? –
@LelioFaieta Извините, я не понимаю. Где я могу ссылаться на '.0'? – michaelmcgurk
jQuery ('.' + Val) .show(); val равно 0, поэтому вы хотите показать элемент с классом 0, который не находится в DOM. Может быть, я неправильно читаю ваш код в любом случае! –