Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простое меню, помогите найти ошибку 
:(
    Опции темы
lasalexx
Дата 27.12.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 19.7.2004
Где: Tbilisi

Репутация: нет
Всего: 1



хочу сделать простое меню с помощью javascript. что б при наведении на ссылку открывалось соответствующее меню.

код 1.htm
Код

<html>
<head>
<title>Difficult Menu</title>
<script src="menu.js" type="text/javascript"></script>
<style>
.md {position: absolute; background:#AAAAAA; color:#BB0000; width:150px; height:30px; line-height:30px;
    font-weight:bold; text-align:center}
</style>
</head>
<body>
<script type="text/javascript">
//<!--
makemenu();
//-->
</script>
</body>
</html>


код menu.js
Код

var menu=new Array();
var q=new Array();
var eps=new Array();

menu[0]=new Array("Georgian", "http://www.internet.ge");
menu[1]=new Array("Russian", "http://www.yandex.ru");
menu[2]=new Array("International", "http://www.yahoo.com");

eps[0]=false;
q[0]=new Array();
q[0][0]=new Array("Online", "http://www.gol.ge");
q[0][1]=new Array("Avoe", "http://www.avoe.ge");

eps[1]=false;
q[1]=new Array();
q[1][0]=new Array("Forum", "http://www.forum.vingrad.ru");
q[1][1]=new Array("MTV", "http://www.mtv.ru");
q[1][2]=new Array("Mail", "http://www.mail.ru");

eps[2]=false;
q[2]=new Array();
q[2][0]=new Array("Web Design", "http://www.flash-intro-template.com");
q[2][1]=new Array("Computers", "http://www.pcshoppin.com");
q[2][2]=new Array("MP3 Files", "http://www.allofmp3.com");
q[2][3]=new Array("Hot Mail", "http://www.hotmail.com");

function makemenu()
{
var l=20;
var t=20;
var w=150;
var h=30;
var l1=0;
var t1=0;
var z_ind=10;

for (var i=0; i<menu.length; i++)
    {
    l1=l;
    t1=t+i*(h+1);
    document.write('<div id="menu'+i+'" class="md" style="top:'+t1+'px; left:'+l1+'px; z-index:'+z_ind+';" onMouseOver="openmenu('+i+')">');
    document.write('<a href="'+menu[i][1]+'">'+menu[i][0]+'</a>');
    document.write('</div>');
    z_ind++;
    }

for (i=0; i<q.length; i++)
    for (var j=0; j<q[i].length; j++)
        {
        l1=l+w+1;
        t1=t+i*(h+1)+j*(h+1)
        document.write('<div id="q'+i+j+'" class="md" style="top:'+t1+'px; left:'+l1+'px; display:none; z-index:'+z_ind+';" onMouseOver="">');
        document.write('<a href="'+q[i][j][1]+'">'+q[i][j][0]+'</a>');
        document.write('</div>');
        z_ind++;
        }
}


function openmenu(n)
{
for (var i=0; i<eps.length; i++)
    {
    if(eps[i]==true)
        {
        for(var j=0; j<q[i].length; j++)
            document.getElementById("q"+i+j).style.display="none";
        }
    eps[i]=false;
    }


if(eps[n]==false)
    {
    for(i=0; j<q[n].length; i++)
        document.getElementById("q"+n+i).style.display="block";
    eps[n]=true;
    }
}



вроде с функцией makemenu() всё в орядке.
а вот с openmenu() помоему что то нито. только где ошибка понять не могу
PM MAIL WWW ICQ MSN   Вверх
kaa
Дата 27.12.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



lasalexx, Гм... Есть мысль что наверное зря вы на десятый слой запихнули ваше меню, зачем? Как я понимаю, на другой слой пихают чтобы не сбивалась разметка "статической" части страницы, так помниться я всю статическую часть  клал на слой ПОД слой меню, а у вас наоборот.
Если я правильно понял меню невидно.
Попробуйте всему содержимому поставить индекс слоя больше чем у меню, тогда менюшки будут над всем остальным выпрыгивать, а так они у вас под всем остальным прыгают.

Я так думаю.
PM MAIL   Вверх
lasalexx
Дата 27.12.2006, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 19.7.2004
Где: Tbilisi

Репутация: нет
Всего: 1



сам нашёл ошибку. Извините.
Код

for(i=0; i<q[n].length; i++)

вместо
Код

for(i=0; j<q[n].length; i++)


а вообще, я правильно делаю, или можно и по легче?

Это сообщение отредактировал(а) lasalexx - 27.12.2006, 22:31
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0774 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.