Вы искали что-то подобное? http://jsfiddle.net/tYvQ8/
$("#theSelect").change(function() {
var value = $("#theSelect option:selected").val();
var theDiv = $(".is" + value);
theDiv.slideDown().removeClass("hidden");
theDiv.siblings('[class*=is]').slideUp(function() { $(this).addClass("hidden"); });
});
Когда изменяется опция выбора, вы
- Откройте выделенный
div
с помощью slideDown()
и удалите его hidden
класс.
- Найдите братьев и сестер
div
, которые имеют "is" в имени класса. (Будет проще, если в меню нет брата или сестры.)
- Скрыть ранее показанные братья и сестры с помощью
slideUp()
, который принимает обратный вызов для добавления класса hidden
после завершения slideUp()
Вот еще один (на мой взгляд, лучше) способ: http://jsfiddle.net/tYvQ8/1/
Избавьтесь от своего hidden
класса и используйте jQuery, чтобы скрыть их. Тогда вам не нужно беспокоиться о добавлении и удалении класса.
HTML без скрытого класса
<body>
<div class="selectContainer">
<select id="theSelect">
<option value="">- Select -</option>
<option value="Patient">Patient</option>
<option value="Physician">Physician</option>
<option value="Nurse">Nurse</option>
</select>
</div>
<div class="isPatient">Patient</div>
<div class="isPhysician">Physician</div>
<div class="isNurse">Nurse</div>
</body>
JQuery
$('[class^=is]').hide();
$("#theSelect").change(function(){
var value = $("#theSelect option:selected").val();
var theDiv = $(".is" + value);
theDiv.slideDown();
theDiv.siblings('[class^=is]').slideUp();
});