Toggleclass完美无缺,但兄弟姐妹不这样做。
如果我点击另一个按钮h1,我会错过一些“corrente”类别不会删除。
结构代码:
$(document).ready(function(){
$("ul.box").addClass(" invisivel");
$("#menu a").click(function(){
$(this).next("ul.box")
.slideToggle("slow")
.siblings("ul.box:visible")
.slideUp("slow");
$(this).children("h1")
.toggleClass("corrente")
.siblings("h1")
.removeClass("corrente");
return false;
});
});
Html代码:
<div id="menu">
<a href="">
<h1 class="link-titulo">Oficina da África</h1>
</a>
<ul class="box">
<li>xxx</li>
</ul>
<a href="">
<h1 class="link-titulo">Calendário/Currículo</h1>
</a>
<ul class="box">
<li>xxx</li>
</ul>
</div>
答案 0 :(得分:0)
在调用.children()
之后,您正在处理这组新元素,因此调用.siblings()
然后访问孩子的兄弟。您可以使用jQuery.fn.end()
返回上一组:
$(this).children("h1").toggleClass("corrente")
.end() // <--
.siblings("h1").removeClass("corrente");
答案 1 :(得分:0)
试试这个,如果可能的话,添加你的HTML代码
$(document).ready(function(){
$("ul.box").addClass(" invisivel");
$('#menu a').each(function() {
$(this).click(function() {
$(this).next("ul.box").slideToggle("slow")
.siblings("ul.box:visible").slideUp("slow");
$(this).children("h1").toggleClass("corrente")
.siblings("h1").removeClass("corrente");
return false;
});
});
});
答案 2 :(得分:0)
尝试替换
.siblings("h1").removeClass("corrente");
与
.next("h1").removeClass("corrente");