Спойлер 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.. Как реализовать? помогите пожалуйста |
Самый простой вариант - запоминать предыдущий, примерно так:
<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> |
Огромное спасибо
|
Ого. Спасибо!
А скажите как сделать чтобы первый был автоматически открытым? |
Цитата:
|
В данном случае проще всего просто вызвать открытие блока в ручную.
<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>Но вообще этот код сделан на коленке и мне не нравится.) |
Часовой пояс GMT +3, время: 19:14. |