Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Простые табы
 
 автор: tima2010   (28.02.2012 в 17:05)   письмо автору
 
 

Привет!
Есть простая структура с событием 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>

  Ответить  
 
 автор: task   (28.02.2012 в 18:33)   письмо автору
 
   для: tima2010   (28.02.2012 в 17:05)
 

$(".mytab a").toggle(function(){ 
   $(filter).hide("slow");
   var id = $(this).attr("rel"); 
   $("#" + id).show("slow");
   ...

где filtr указывает на объекты, которые нужно скрыть.

  Ответить  
 
 автор: tima2010   (28.02.2012 в 18:40)   письмо автору
 
   для: task   (28.02.2012 в 18:33)
 

Простите, можно по подробнее

  Ответить  
 
 автор: task   (28.02.2012 в 18:50)   письмо автору
 
   для: tima2010   (28.02.2012 в 18:40)
 

Можно. Вам перед открытием выбранного блока, нужно просто закрыть все, а для этого достаточно сослаться на них (на набор). Если ваши DIV с именами blockN находятся в неком родительском DIV с ID, например, box, то достачтоно написать:
$(#box div).hide("slow");
Если таким образом нельзя к ним обратиться, то выбирайте их по селектору (фильтру), в вашем случае по значению атрибута ID:
$("[id ^= block]").hide("slow");

А дальше открывайте выбранный.

  Ответить  
 
 автор: tima2010   (28.02.2012 в 18:58)   письмо автору
 
   для: 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>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования