Спойлер 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, время: 15:50. |