Я пытаюсь создать простую слайд-меню при нажатии на элемент меню верхнего уровня. Функциональность, которую я ищу, - это когда элемент меню верхнего уровня нажимается на все другие подменю, а тот, который нажал слайды, и когда вы нажимаете тот же пункт меню, подменю соскальзывает.Невозможно настроить дочерние элементы
Проблема у меня нацеливает ребенка уль теги
<ul>
<li class="main-menu-item">
<a href="#"></a>
<ul class="sub-menu">
<li>Stuff</li>
</ul>
</li>
</ul>
Вот мой JQuery
(function($) {
'use strict';
$(function() {
var menuItem = $('#nav__menu li.main-menu-item'),
subMenuItem = $('#nav__menu ul.sub-menu');
// setup
menuItem.parents().attr('tabIndex',-1).attr('aria-haspopup',true);
subMenuItem.attr('aria-hidden', true);
menuItem.on('click', function(e) {
e.preventDefault();
$(this).toggleClass('active');
$(this).siblings('.active').removeClass('active');
});
subMenuItem.each(function() {
if($(this).parents().hasClass('active')) {
$(this).find(subMenuItem).attr('aria-hidden', false).slideDown();
} else {
$(this).find(subMenuItem).attr('aria-hidden', true).slideup();
}
});
});
})(jQuery);
Было бы полезно, если бы Вы отправили видеодемонстрацию (jsfiddle или стек сниппет), который включает в себя весь код, чтобы воссоздать эту проблему! –
Я также хотел бы отметить, что вы должны привыкнуть к [предписывая имена переменных с '$', если они хранят объект jQuery] (http://stackoverflow.com/a/5754099/2788131). Это помогает читать (например, '$ menuItem' и' $ subMenuItem'). – D4V1D
Добавлен JS Fiddle – gilgimech