Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрывать открытые спойлеры при открытии нового спойлера (https://javascript.ru/forum/dom-window/13489-skryvat-otkrytye-spojjlery-pri-otkrytii-novogo-spojjlera.html)

Grawl 30.11.2010 17:23

Скрывать открытые спойлеры при открытии нового спойлера
 
У Меня есть скрипт спойлера. Вот такой:
onclick="d=document.getElementById('hided-first').style; if(d.display=='block'){d.display='none';}else{d.display='block';}"

Работает вот в такой конструкции:
<div id="first" onclick="d=document.getElementById('hided-first').style; if(d.display=='block'){d.display='none';}else{d.display='block';}"> 
<h2>1.</h2> 
<p><span>Связаться с офисом компании AutoBusinessClub Japan Co.,Ltd.</span></p> 
<div id="hided-first" class="hided"> 
<ul> 
<li>сообщить информацию о вашей компании, контактные данные.</li> 
<li>сообщить информацию о виде и количестве экспортируемого груза (автотехники)</li> 
</ul></div> 
</p></div>

Посмотреть можно тут и ещё вот тут.
В общем-то, что хочу. Хочу добавить туда такую функцию, чтобы, когда кликаешь на спойлер, скрывалось содержимое другого открытого спойлера — чтобы не загораживали друг-друга, ведь у Меня они весьма нестандартно расположены, друг над другом.

JS знаю поверхностно (можно сказать, почти и не знаю), так что очень прошу помощи.

dmitriymar 30.11.2010 19:07

ну дак отслеживай на открытость соседние. также как ослеживаеш один

Grawl 30.11.2010 19:42

Я не отслеживаю (: Я вообще мало что понимаю в том коде, что использую.
Мне тут друг помог, вот такая байда получилась:
/**
* Show or hide hided blocks
*/
function toggleHided(element){
 if(list===undefined){var list = document.getElementsByTagName('div');} 
 var element = document.getElementById(element); 
 if(element.style.display=='block'){element.style.display='none';}else{element.style.display='block';}
 //hide all hided
 for(i = 0; i < list.length; i++) {
  if(element.id==list[i].id){
   continue;
  }
  //dont forget edit class name (:
  if(list[i].className=="hided") {
   list[i].style.display='none';
  }
 }
}

ksa 30.11.2010 21:24

Grawl, из недавно обсуждаемых...

http://javascript.ru/forum/dom-windo...a-drugojj.html

Цитата:

Сообщение от Grawl
вот такая байда получилась

И правда - байда.


Часовой пояс GMT +3, время: 13:49.