|
|
|
| Привет!
Есть простая структура с событием click при нажатии появляется блок который скрыт.
Как слелать чтобы предыдущий закрывался? просто если нажать на block1 и нажать на block2 они оба появятся
А нужно чтобы скрывались все кроме нажатого? Что то типа табов...
<script>
$(document).ready(function(){
$(".mytab a").toggle(function(){
var id = $(this).attr("rel");
$("#" + id).show("slow");
}, function(){
var id = $(this).attr("rel");
$("#" + id).hide("slow");
});
});
</script>
<div class="mytab">
<a rel="block1">block1</a>
<a rel="block2">block2</a>
</div>
<div id="block1" style="display:none">text1</div>
<div id="block2" style="display:none">text2</div>
|
| |
|
|
|
|
|
|
|
для: tima2010
(28.02.2012 в 17:05)
| |
$(".mytab a").toggle(function(){
$(filter).hide("slow");
var id = $(this).attr("rel");
$("#" + id).show("slow");
...
|
где filtr указывает на объекты, которые нужно скрыть. | |
|
|
|
|
|
|
|
для: task
(28.02.2012 в 18:33)
| | Простите, можно по подробнее | |
|
|
|
|
|
|
|
для: tima2010
(28.02.2012 в 18:40)
| | Можно. Вам перед открытием выбранного блока, нужно просто закрыть все, а для этого достаточно сослаться на них (на набор). Если ваши DIV с именами blockN находятся в неком родительском DIV с ID, например, box, то достачтоно написать:
$(#box div).hide("slow");
| Если таким образом нельзя к ним обратиться, то выбирайте их по селектору (фильтру), в вашем случае по значению атрибута ID:
$("[id ^= block]").hide("slow");
|
А дальше открывайте выбранный. | |
|
|
|
|
|
|
|
для: task
(28.02.2012 в 18:50)
| | Большое спасибо! сделал так
<script>
$(document).ready(function(){
$(".mytab a").click(function(){
$(#box div).hide("slow");
var id = $(this).attr("rel");
$("#" + id).show("slow");
return false;
});
});
</script>
<div class="mytab">
<a rel="block1">block1</a>
<a rel="block2">block2</a>
</div>
<div id="box">
<div id="block1" style="display:none">text1</div>
<div id="block2" style="display:none">text2</div>
</div>
|
| |
|
|
|