onclick срабатывает со 2 раза.

P
На сайте с 10.03.2008
Offline
168
9156

Помаленьку делаю дизайн тут. Там снизу менюшка в виде кнопки, по нажатии на которую, срабатывает

onclick="JavaScript:ShowMenu();"

Простецкая функция ShowMenu:

function ShowMenu() {

if(document.getElementById('Layer1').style.display == 'none') {
document.getElementById('Layer1').style.display = 'block';
}
else {
document.getElementById('Layer1').style.display = 'none';
}
return true;
}

Так вот, при первом клике ничего не происходит, меню нормально открывается\закрывается только со 2 клика. С чем связано такое поведение?

SK
На сайте с 31.08.2007
Offline
81
#1

По умолчанию display установлен у тебя скорее всего и не none и не block

Сначало он проверяет, видит что значение не none и ставит none

f потом уже значение none и он срабатывает как нада

Нужен перенос информации? Информеры на сайт? Сграбить контент? Создать базу товаров? Изготовление любых парсеров! (/ru/forum/836197)
P
На сайте с 10.03.2008
Offline
168
#2

Silent_Kill, display: none по умолчанию прописано в stylesheet.css

Добавлено: прописал стиль в самом шаблоне, а не в css файле и всё заработало, спасибо.

SK
На сайте с 31.08.2007
Offline
81
#3

заглянул на сайт - убей ссылку на #

ваще там лучше не a юзать, а спан

или сделай

onclick="javascript:ShowMenu(); return false;"

D
На сайте с 10.08.2007
Offline
52
#4

!Up

Попробуйте еще сделать так:

function ShowMenu() {

if(document.getElementById('Layer1').style.display != 'block') {
document.getElementById('Layer1').style.display = 'block';
}
else {
document.getElementById('Layer1').style.display = 'none';
}
return true;
}

Работает без доп. изврашений.

А еще проще и короче (смысл тот же):

function ShowMenu() {

document.getElementById('Layer1').style.display=(document.getElementById('Layer1').style.display != 'block')? 'block':'none';
return true;
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий