#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. извините, снова не работает. подменю не закрывается само по себе при выборе другого, это срабатывало при предыдущих попытках заставить эту штуку работать.