Меню Jquery — проблема с переключением

#javascript #jquery #menu

#javascript #jquery #меню

Вопрос:

Чтобы узнать, в чем проблема, посмотрите код на jsFiddle.Есть ли способ настроить список с классом «menutop» так, чтобы он действовал как класс «toogle» ( ), другими словами, при нажатии на сообщения, страницы и так далее открывается подменю.

Вторая вещь, которая меня беспокоит, — это как настроить меню таким образом, чтобы при открытии одного подменю и щелчке пользователем какого-либо другого подменю предыдущее открывалось для автоматического закрытия.

Ответ №1:

Я назвал функцию в обработчике toogle и вызвал ее из menutop, установив для элемента класса переключения значение «this», чтобы он выглядел более знакомым для вас.

Я только что добавил строку, которая гарантирует, что одновременно может быть открыт только один раздел

 function hitMe(){
   if ($(this) .hasClass('toggle-open')) {
     $(this) .removeClass('toggle-open') .addClass('toggle-closed') .empty('') .append(' ') .parents('li') .children('ul') .slideUp(250);
     $(this) .parent('.menutop') .removeClass('menutop-open') .addClass('menutop-closed');
   }else{
     $(".toggle-open").parent().click();//closes the previously opened menu
     $(this) .parent('.menutop') .removeClass('menutop-closed') .addClass('menutop-open');
     $(this) .removeClass('toggle-closed') .addClass('toggle-open') .empty('') .append('amp;ndash;') .parents('li') .children('ul') .slideDown(250);
 }
}

$(".menutop").click(function(){
     hitMe.apply(
         $(this).find(".toggle")
     );
}
);
  

Комментарии:

1. Отличная работа. Возможно ли, чтобы при нажатии на один из элементов подменю и открытии новой страницы по этой ссылке это подменю оставалось открытым на новой загруженной странице. tnx

Ответ №2:

Вот изменение.Добавлена функция закрытия всех, а затем я также добавил обработчик щелчков для класса menu-top, который делает по существу то же самое для расширения вкладок. Надеюсь, это поможет!

Комментарии:

1. спасибо, что пытался мне помочь. Работает так, как я хотел, но возникла новая проблема: теперь при нажатии, чтобы закрыть открытое подменю — не работает, и его — постоянно

2. О, забыл изменить текст на ‘ ‘. Исправлено здесь jsfiddle.net/hNddK/24 . Я также добавил предупреждение при нажатии на подменю, которое, похоже, работает. Что вы имеете в виду, это не работает?

3. Когда я нажимаю на , все в порядке, но затем, когда я снова нажимаю на now — текст все еще остается — и подменю открывается вместо того, чтобы быть закрытым, а текст меняется на

4. Черт возьми, я понял, что допустил пару ошибок. Вам не нужен обработчик щелчка для / -, поскольку он содержится в меню. Кроме того, вы должны просто вызвать CloseAll(), если он уже открыт. Это должно быть лучше jsfiddle.net/hNddK/25

5. извините, снова не работает. подменю не закрывается само по себе при выборе другого, это срабатывало при предыдущих попытках заставить эту штуку работать.