jquery兄弟姐妹removeclass

时间:2011-11-03 14:16:36

标签: jquery

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>

3 个答案:

答案 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");