Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Всплывающий список (https://javascript.ru/forum/dom-window/36935-vsplyvayushhijj-spisok.html)

Alina25 01.04.2013 17:42

Всплывающий список
 
Подскажите пожалуйста, в чем здесь ошибка?
Есть два списка, один по умолчанию имеет display:none;
второй при нажатии на ссылку первого элемента, должен дать ему значение display:block; и открыть его выше.

Скрипт:
<script>
function down()
{
var a = document.getElementById('language');
if ( a.style.display == 'none' )
a.style.display = 'block'
else
if ( a.style.display == 'block' )
a.style.display = 'none';
};
</script>

Css файл:

<style type="text/css">
#language{display:none;}
</style>

Html файл:
<ul id="language"><!-- Footer - Menu -->
<li><a href="#">Русский</a></li>
<li><a href="#">Английский</a></li>
<li><a href="#">Немецкий</a></li>
<li><a href="#">Итальянский</a></li>
<li><a href="#">Французкий</a></li>
</ul>
<ul class="menu2">
<li><a href="#" onclick="down()">
<div class="ua"></div>
<span class="bord">Українська</span>
</a></li>
<li><a href="#">Про сайт</a></li>
<li><a href="#">Реклама на сайті</a></li>
</ul>

rgl 01.04.2013 18:54

При таком задании стиля свойство a.style.display остается пустым. Можно попробовать поменять проверки, напр. так:
вместо if ( a.style.display == 'none' ) написать if ( a.style.display != 'block' )
или задать стиль в тэге атрибутом style:
<ul id="language" style="display:none">

alexben 01.04.2013 19:31

ответ в теме: или на это
 
поменять на a.style.display == '' в обоих условиях..

kazakn 02.04.2013 16:45

т.е. вместо none оставить пустые кавычки.
примерно так:)
<script>
function down()
{
var a = document.getElementById('language');
if ( a.style.display == '' )
a.style.display = 'block'
else
if ( a.style.display == 'block' )
a.style.display = '';
};
</script>


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