Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > скрипт выпадающего меню работает только в IE


Автор: Peacekeeper 11.10.2005, 13:06
Люди добрые поможите плиззз я типа женщина слабая, беззащитная, мозги плохо работают.
сделала менюшку, в эксплорере пашет а в мозилле отказывается.

выпадающие пункты меню сделала отдельными слоями, забила каждый в отдельный div, свойства divoв прописала в css и скрыла, при наведении мышки на пункт основного меню они должны проявляться, при смещении мышки на пунк без выпадающих подпунктов убираться. Всего у меня получилось 3 файла. css скрипт и хтмл.

то что получилось лежит вот тут http://steklamusic.narod.ru/menu-ie.html
мне бы скриптик поправить, штоб в мозилле пахал
на всяк случай вставляю текст скрипта

Код

var navShown=false;
var navFade=null;
var nameShown = "";

function hideNav()
{
if (navFade) {clearTimeout(navFade);navFade=null}
if(navShown) {document.all[nameShown].style.visibility="hidden";}

navShown=false;
nameShown="";
return true;
}

function showNav(name)
{
if (navFade)
{clearTimeout(navFade);
navFade=null}
if(nameShown!=name)
{if (navShown) hideNav();
{document.all[name].style.visibility="visible";}
nameShown = name;}
navShown=true;
return true;
}

function closeNav()
{
navFade=setTimeout("hideNav();",100);
//hideNav();
return true;
}

Автор: sergejzr 11.10.2005, 13:14
Ну во первых дай каждому div'у идентификатор

Код

<div id="layer_1" >Text</div>
<div id="layer_2" >Text</div>
<div id="layer_3" >Text</div>


Забудь document.all[name] как страшный сон smile
пиши:
document.getElementById(name);

Ну и наконец вместо:
.style.visibility="visible"

используй
.style.display="block"
или соответственно
.style.display="none"

Это то, что бросилось в глаза. Исправь, потом посмотрим дальше.
PS:
1.) Java и Javascript - разные вещи!
2.) Пользуйся кнопкой "Код" дабы подсветить исходный код в сообщении!

Автор: Peacekeeper 11.10.2005, 14:02
идентификаторы у дивов были, тока не лаерами обозваны а названиями меню. остальное ща попробую исправить
Добавлено @ 14:10
пасиб. изменила document.all[name] на document.getElementById(name);
заработало smile))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)