Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.01.2014, 14:29
Новичок на форуме
Отправить личное сообщение для WeStyle Посмотреть профиль Найти все сообщения от WeStyle
 
Регистрация: 31.01.2014
Сообщений: 4

Не работает выпадающее меню
Добрый день, уважаемые форумчане.
Нужна помощь в реализации элементарной функции. Сам в Javascript'e не разбираюсь, но приходится делать. В общем, проблема в следующем:

Есть html код меню:

<nav id=main_nav>
<div class="catalog">
<a id="main_nav_header" href="javascript:void(0);"> Каталог товаров </a>
<div id="main_nav_body" style="display: none;">
Вот тут будет список с пунктами меню.
</div>
</div>
</nav>

И есть вот такой javascript:

var $=jQuery.noConflict();
$('#main_nav_header').click(function() {
$('#main_nav_header').addClass('show_hide');
$('#main_nav_body').removeClass('show_hide');
return false;
});

И такой вот css:
.show_hide {
display:none;
}

Нужно, чтобы при нажатии на ссылку Каталог - появлялся блок с меню. Консоль ошибок не выдает, но меню не выпадает. Заранее благодарю за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 02.02.2014, 00:04
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от WeStyle
Сам в Javascript'e не разбираюсь
Зато хорошо разбираетесь в jquery.
Ответить с цитированием
  #3 (permalink)  
Старый 03.02.2014, 11:32
Новичок на форуме
Отправить личное сообщение для WeStyle Посмотреть профиль Найти все сообщения от WeStyle
 
Регистрация: 31.01.2014
Сообщений: 4

Сообщение от kostyanet Посмотреть сообщение
Зато хорошо разбираетесь в jquery.
В нем тоже не разбираюсь, поэтому и прошу помощи... Скрипт написан не мной, собственно поэтому и не могу починить.
Ответить с цитированием
  #4 (permalink)  
Старый 03.02.2014, 11:57
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Начните чинить отсюда

$('#main_nav_header').click(function() {
$('#main_nav_header').addClass('show_hide');
$('#main_nav_body').removeClass('show_hide');
return false;
});

внутри безымянной функции $('#main_nav_header') существует как this в который в любое время до click может быть добавлена проперть для связи с $('#main_nav_body')
Ответить с цитированием
  #5 (permalink)  
Старый 03.02.2014, 12:03
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

В общем если вы сами не видите что

<div id="main_nav_body" style="display: none;">

это элемент вне разметки благодаря стилю, а

$('#main_nav_body').removeClass('show_hide');

удаляет оформление в классе

.show_hide {display:none;}

которого там никогда не было, то значит не хотите видеть.

Насколько умен жиквери я судить не берусь, в смысле может евойный римувкласс выкосить по-атрибутно, но по обычной житейской логике должно быть так

<div id="main_nav_body" class="show_hide">

тогда жикверь указанный класс удалит и наверно элемент в разметке появится и покажется.
Ответить с цитированием
  #6 (permalink)  
Старый 03.02.2014, 12:12
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

И почему он назван show_hide когда делает только hide? Ну и главное это жикверя как из пушки по воробьям.

var elem = document.getElementById('main_nav_header');
if(elem)
 elem.addEventListener('click', function(){
  this.style.display="";
}, false);


И тогда

<div id="main_nav_body" style="display: none;">

остается как ест.

А, вам еще скрыть надо соседний. Упомяните его по той же схеме внутри колбэка.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение активных пунктов многоуровневого меню на jQuery Letto Элементы интерфейса 2 04.12.2013 15:30
Выпадающее меню для внутренней навигации по закладкам на странице на javascript+css rdfhnbhf Javascript под браузер 1 13.07.2012 12:26
Как сделать, чтобы выпадающее меню оставалось развернутым? Эдгар Элементы интерфейса 1 28.02.2011 19:43
Не работает меню exec Internet Explorer 8 25.05.2010 10:09
Скрипт меню работает только под IE7 и выше TAILER Internet Explorer 1 31.08.2009 13:21