当slideDown元素时,其余的活动元素会滑动

时间:2012-01-31 12:54:35

标签: jquery

大部分都在工作,但我无法关闭当前的工作。 看看这里:http://jsfiddle.net/Wsk3f/2/

$(document).ready(function () {
    $("ul li a.show_child").click(function(){
        $("ul li a.show_child.active").removeClass("active");
        $("ul li a.show_child").next().slideUp(300);
        $(this).toggleClass("active");
        $(this).next().slideToggle(300);
    });
});

2 个答案:

答案 0 :(得分:0)

我添加了一个布尔值来检查当前点击的元素是否已经具有“活动”类,这意味着它应该只关闭:

$(document).ready(function() {
    $("ul li a.show_child").click(function() {

        var $this = $(this),
            closeOnly = $this.hasClass('active');

        $("ul li a.show_child.active").removeClass("active");
        $("ul li a.show_child").next().slideUp(300);

        if (!closeOnly) {
            $this.toggleClass("active");
            $this.next().slideToggle(300);
        }
    });
});

<强> DEMO

答案 1 :(得分:0)

试试这个

$(document).ready(function () {
    $("ul li a.show_child").click(function(){
        $("ul li a.show_child.active").removeClass("active");
        $("ul li a.show_child").next().slideUp(300);
        $(this).toggleClass("active");
        $(this).next().stop().slideToggle(300);
    });
});