2016-07-06 3 views
0

Я ноб, но я пытаюсь изучить js. Мы обсуждали это меню, но у меня были проблемы с проблемой: используя мой код, как мне реализовать поведение только при открытии одного раскрывающегося меню на мобильном устройстве?Только одно раскрывающееся меню открыто одновременно

$(".menu > ul > li").click(function() { 
    if ($(window).width() <= 943) { 
     $(this).children("ul").fadeToggle(150); 
    } 
}); 

Это демо мой код: http://jsbin.com/sesuda/edit?html,output

Путь этот шаблон работает, он держит все выпадающие открытым.

То, что я пробовал: используя not (this), чтобы открыть только раскрывающийся элемент с щелчком. Также, используя следующий (элемент), можно сделать только один следующий брат (выпадающий контент рядом с выпадающим списком).

Любая помощь была бы принята с благодарностью. Отказ от ответственности: извините за сломленный английский, это не мой родной язык, и я не спал в течение 24 часов.

спасибо.

ответ

1

Вы должны исчезнуть все элементы, а затем исчезают в щелкнул один

$(".menu > ul > li").click(function() { 
    if ($(window).width() <= 943) { 
     $(".menu > ul > li > ul").fadeOut(150); 
     $(this).children("ul").fadeToggle(150); 
    } 
}); 
+0

Спасибо, сэр. Это работает! Однако, незначительная проблема, если я снова нажму на один и тот же элемент раскрывающегося списка, он не закрывает его. Я думаю, ваше решение отвечает на мой первоначальный вопрос, и вы потрясающий, но он представляет собой небольшую проблему. – Tudor

+0

'if ($ (this) .chldren (" ul "). Is (': visible')) { $ (this) .children (" ul "). FadeOut (150); } else { $ (это). Дети ("ul"). FadeIn (150); } ' –

+0

Я заменил fadeToggle на ваш код, но я должен что-то делать неправильно, выпадающие списки не работают вообще: [jsFiddle] (http://jsbin.com/sesuda/edit?html,css,js,output) – Tudor

0

Он работает правильно для меня (Firefox 47). Но я заметил, что у вас есть слушатель .click, а также слушатель .hover. Они могут мешать друг другу.

+0

Спасибо за указание на это, я исправим это позже. Проблема, которую я пытаюсь узнать, заключается в том, как я могу отображать только содержимое одного раскрывающегося списка за раз. На мобильном устройстве: я нажимаю один раскрывающийся список, другой закрывается. – Tudor

Смежные вопросы