我正在修改手风琴脚本,将类active
添加到被点击的链接中,但是对于子项,我遇到了问题。
基本上,如果你点击手风琴的一个孩子,我需要它来添加活动的类而不从父母移除它。喜欢这个
parent-item
parent-item (active)
sub-item
sub-item (active)
sub-item
parent-item
parent-item
这是目前的一些脚本:
$("#menu li a").removeClass("active");
$(this).addClass("active");
谢谢,如果您需要澄清,请发表评论。
编辑:
子元素在技术上不是同一个孩子,因此.parent()
将不起作用。
<li>
<a href="#">parent-item</a>
<ul>
<li><a href="#">sub-item</a>
</ul>
</li>
答案 0 :(得分:1)
您可以尝试:
$(this).parent().siblings().children('a').removeClass("active");
$(this).addClass("active");
这将删除相同级别元素上的.active
答案 1 :(得分:0)
你的意思是这样的吗?
$("#menu li a").removeClass("active");
$(this).addClass("active");
$(this).parent().addClass("active");
删除活动类后,只需将其添加回选定项和其父级。
编辑:查看您的HTML片段,您应该能够根据需要向后走,然后再回来。 e.g。
$("#menu li a").removeClass("active");
$(this).addClass("active");
$(this).parent().parent().children("a").addClass("active");
答案 2 :(得分:0)
类似的东西:
$("#menu > ul").removeClass("active");
$(this).parent("li").parent("ul").addClass("active");
应将活动类添加到相关的父项。
答案 3 :(得分:0)
这个例子也许可以帮到你
<ul id='menu'>
<li>
<a>MElement1</a>
</li>
<li>
<a>MElement2</a>
</li>
</ul>
<ul id='menu1'>
<li>
<a>Element1</a>
</li>
<li>
<a>Element2</a>
</li>
</ul>
CSS
.deneme{
color:red;
}
.deneme1{
color:blue;
}
JS
$('#menu').addClass('deneme')
$('#menu1 li a').addClass('deneme1')
$('#menu').live('click',function(){
$(this).toggleClass('deneme')
})
$('#menu1 li a').live('click',function(){
$(this).toggleClass('deneme1')
})
你可以在这里查看http://jsfiddle.net/h7fvW/