Построение дерева. Проблема.

sage

Новичок
Построение дерева. Проблема.

Есть код:
Код:
<script language="JavaScript">
<!--

function change_visibility(id)
{
    element = document.getElementById(id);
    if ('visible' == element.style.visibility) {
        element.style.visibility = 'hidden';
    } else {
        element.style.visibility = 'visible';
    }
}

//-->
</script>

<a onClick="change_visibility(100004)">Раздел 1</a>
<div id="100004" style="visibility: hidden">&nbsp;&nbsp;Текст 1<br>
<a onClick="change_visibility(100005)">&nbsp;Раздел 2</a>
<div id="100005" style="visibility: hidden">
<a onClick="change_visibility(100008)">&nbsp;&nbsp;Раздел 3</a>
<div id="100008" style="visibility: hidden">
</div>
</div>
</div>
Что имеем: при нажатии на "Раздел 1", выводится "Текст 1" и "Раздел 2". При разворачивании Раздела 2 - появляется "Раздел 3". Тут всё правильно. Ошибок нет. Проблема с со сворачиванием. Когда я сворачиваю поэтапно (сначала закрываю раздел 3, потом раздел 2 и т.д.), проблем нет. Но, вот, если попытаться закрыть сразу же раздел 1, то "Текст 1" и "Раздел 2" исчезнут, а "Раздел 3" останется на экране монитора. Кто-нибудь, объясните, почему так происходит. Спасибо.
 

SelenIT

IT-лунатик :)
sage
Читаем стандарт:
hidden
The generated box is invisible (fully transparent, nothing is drawn), but still affects layout. Furthermore, descendents of the element will be visible if they have 'visibility: visible'.
Имхо, здесь лучше использовать display = 'none' и display = '' соответственно.
 

sage

Новичок
у-ух! бАльшое тебе спасибо, SelenIT!

-~{}~ 16.10.05 21:35:

правда, немного непонятен смысл слова "descendents"
 
Сверху