【发布时间】:2015-02-20 19:12:57
【问题描述】:
我仍然只是在学习使用 jQuery,我认为我的问题对于任何了解 jQuery 的人来说都是一个很容易解决的问题。
我有一些用于导航菜单的代码,我认为它可以按照我想要的方式工作,除了:单击具有更多子项的子项(子菜单中的子菜单)时,带有子项的扩展父菜单项将关闭/感动。
我确实希望扩展子菜单以关闭同一级别/范围内的其他扩展子菜单。例如,如果“第一个项目+”链接被展开并且用户单击“第二个项目+”,我希望它关闭但是,当然,我不想要的是带有子项目的子项目关闭它父母。我希望这是有道理的。这是我用于 jQuery 的代码:
function initMenu() {
$('.sub-menu').hide(); // Start with sub-menus hidden
$('.menu-item-has-children a').click(
function () {
var checkElement = $(this).next();
if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$('.sub-menu:visible').slideToggle(260);
}
if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
removeActiveClassFromAll();
$(this).addClass("active");
$('.sub-menu:visible').slideToggle(260);
checkElement.slideToggle(260);
return false;
}
if($(this).siblings('ul').length===0 && $(this).parent().parent().attr('id')==='nav')
{
removeActiveClassFromAll();
$(this).addClass("active");
$('.sub-menu:visible').slideToggle(260);
return false;
}
});
}
function removeActiveClassFromAll() {
$('.menu-item-has-children a').each(function (index) {
$(this).removeClass("active");
});
}
$(document).ready(function () {
initMenu();
});
$('.menu').click(function (e)
{
e.stopPropagation();
});
我想问题出在代码调用removeActiveClassFromAll的位置。
非常感谢您的帮助。非常感谢,圣诞快乐/节日快乐!
【问题讨论】:
标签: jquery menu navigation accordion expand