Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2013, 01:07
Новичок на форуме
Отправить личное сообщение для exage Посмотреть профиль Найти все сообщения от exage
 
Регистрация: 02.04.2013
Сообщений: 7

Спойлер js не закрывает уже открытые
Есть код
<script type="text/javascript">

function openbox(id){
    display = document.getElementById(id).style.display;

    if(display=='none'){
       document.getElementById(id).style.display='block';
    }else{
       document.getElementById(id).style.display='none';
    }
}
</script>



<div onclick="openbox('box<?php echo $id; ?>'); return false" >box<?php echo $id; ?></div>
<div id="box<?php echo $id; ?>">инфорация1</div>

<div onclick="openbox('box<?php echo $id; ?>'); return false" >box<?php echo $id; ?></div>
<div id="box<?php echo $id; ?>">инфорация2</div>


$id - разные, для первого блока 1, для второго 2.

Нужно сделать так, что бы при открытии второго скрывался первый, а при открытии первого скрывался второй... и так еще куча id..
Как реализовать? помогите пожалуйста
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2013, 01:24
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,417

Самый простой вариант - запоминать предыдущий, примерно так:
<style> .box{display:none} </style>
<script>
function openbox(id){
    *!*var*/!* current= document.getElementById(id).style;
 
    if(current.display === 'block'){
       current.display = '';
    }else{
       current.display = 'block';
    }
    if(openbox.last !== current) {
        openbox.last.display='';
        openbox.last = current;
    }
}
openbox.last = {};
</script>
 
 
<div onclick="openbox('box1'); return false" >box1</div>
<div id="box1" class="box">инфорация1</div>
 
<div onclick="openbox('box2'); return false" >box2</div>
<div id="box2" class="box">инфорация2</div>
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2013, 03:14
Новичок на форуме
Отправить личное сообщение для exage Посмотреть профиль Найти все сообщения от exage
 
Регистрация: 02.04.2013
Сообщений: 7

Огромное спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2013, 08:02
Интересующийся
Отправить личное сообщение для ekad Посмотреть профиль Найти все сообщения от ekad
 
Регистрация: 17.04.2013
Сообщений: 21

Ого. Спасибо!

А скажите как сделать чтобы первый был автоматически открытым?
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2013, 15:38
Интересующийся
Отправить личное сообщение для neira Посмотреть профиль Найти все сообщения от neira
 
Регистрация: 08.10.2012
Сообщений: 14

Сообщение от ekad Посмотреть сообщение
А скажите как сделать чтобы первый был автоматически открытым?
Действительно как?
Ответить с цитированием
  #6 (permalink)  
Старый 18.04.2013, 20:00
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,417

В данном случае проще всего просто вызвать открытие блока в ручную.
<style> .box{display:none} </style>
<script>
function openbox(id){
    var current= document.getElementById(id).style;
  
    if(current.display === 'block'){
       current.display = '';
    }else{
       current.display = 'block';
    }
    if(openbox.last !== current) {
        openbox.last.display='';
        openbox.last = current;
    }
}
openbox.last = {};
</script>
  
  
<div onclick="openbox('box1'); return false" >box1</div>
<div id="box1" class="box">инфорация1</div>
  
<div onclick="openbox('box2'); return false" >box2</div>
<div id="box2" class="box">инфорация2</div>

<script>openbox('box1');</script>
Но вообще этот код сделан на коленке и мне не нравится.)
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 04:56
Как сделать выполнение одного JS после выполнения другого vita1ii Events/DOM/Window 2 11.01.2013 16:52
есть ли в js понятие частоты кадров, наподобие как во флэше? andrew_F Общие вопросы Javascript 8 01.05.2012 19:25