我有一个带有子菜单的垂直切换菜单,如果我匹配位置,则尝试添加它们的类。在添加类(class)之前,应检查父级上是否有“事件”类(class)。
无论深度有多深,它都应该将“open”类添加到任何父级(li.active),如果匹配位置以保持菜单打开。
nav.main-cat
> li.active
>> a.nav-sub
>> ul.nav
>>> li.active
>>>> a.nav-sub
代码
$('.main-cat a').filter(function () {
return this.href == url;
}).parent().find('.active').addClass('open').children().next('.nav').css('display','block');
我的问题是它只将类添加到最深的菜单中。
最佳答案
it should add to any parent (li.active)
我猜这个.parent().find('.active')
可以替换为.parent('.active')
如果您想要所选a
的所有父级,则需要调用.parents('.active')
最后,这个 .css('display','block')
绝对应该进入 CSS。
发布一个 fiddle ,以便我们可以更精确地查看。
关于javascript - 如果类(class)存在并且匹配位置,则将类(class)添加到父级和子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37556385/