Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onClick -> появляющееся меню (https://javascript.ru/forum/events/2356-onclick-poyavlyayushheesya-menyu.html)

splean 12.12.2008 15:30

onClick -> появляющееся меню
 
Доброго времени суток. Абсолютный ноль в JS, немного знаю HTML+CSS... но пришлось мне заняться созданием сайта, смейтесь - "портала". В общем, всплыли сразу вопросы, которые, впрочем, интересовали меня давно, просто не было подходящего случая в них разобраться.

Посмотрите на gamedev.ru (не сочтите за рекламу, хотя несомненно, рекомендую этот сайт :) ). Подобное меню я хочу сделать у себя, правда с одним исключением.

Жмем, например, на статьи - релоад, появляются подменюшки. Жмем на форум - релоад, эти подменюшки исчезают, появляются другие подменюшки.

Как сделать все то же самое, только без релоада? )

Поискав информацию на эту тему, сделал что то типа такого

Код:

document.getElementById("menu_off").id="menu_on"

(menu_off - display: none; menu_on - display: block)

Но как оказалось, существование элементов с одинаковым id - неправильно, и ИЕ ругается по этому поводу, возвращая Null как я понимаю, а опера и фф в принципе хавают это, но только для первого попавшегося элемента с таким id, для следующего нужно снова нажимать мышкой.

Ну раз с id не вариант, подумал я, то нужно попробовать с классами.
И тут, собственно, работа встала, мозг взорвался, опыта в JS нет никакого, практиковаться негде.. Надеюсь на Вашу помощь)

splean 12.12.2008 16:11

Нашел эту тему, увидел там такой код
lis[i].onmouseout = function() {
  var self = this;
  setTimeout(function() {
    self.className = self.className.replace(/ iehover\b/, "");
  }, 3000);
}


Не он ли мне нужен? ) только вот как работает className.replace?

Т.е. у меня меню - набор div-ов, 1 уровень - menublue css класс, 2 уровень - menusubbblue, 3 уровень - menusubgray.
при загрузке страницы открыты только дивы menublue. При щелчке на одном из них должны открываться подменю именно для этого дива, но не для всех, имеющих класс menublue. Для 3 уровня также.. Уф, понимаю, вам наверное не хочется разжевывать элементарные для вас вещи, но хоть подскажите в каком направлении двигаться?

Octane 12.12.2008 17:44

Для поиска элементов по имени класса удобно использовать метод «getElementsByClassName».


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