如果不是这个,jQuery切换

jos*_*max 1 jquery this slidetoggle toggleclass

如果这是一个新手问题,请原谅我:

我有一个菜单设置打开下一个div以查看更多细节,如果还有另一个div打开它将关闭它,同时打开新的.如果你单击与该div关联的标题,我无法弄清楚如何关闭已打开的div.它只是关闭并重新打开.

码:

$(document).ready(function() {

    $(".heading").click(function(){
        if($(".content").is(":visible")){
            $(".less").removeClass("less");
            $(".content").slideUp(500);
        }
        $(this).next(".content").slideToggle(500);
        $(this).children(".more").toggleClass("less");
    });

});
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

Dar*_*JDG 6

试试这个:

$(".heading").click(function(){
    // Cache stuff, so we don't have to keep generating jQuery objects
    var $this = $(this);
    var $thisContent = $this.next(".content");

    // Saves a boolean value to see if the clicked element's content is
    // currently visible
    var thisWasVisible = $thisContent.is(":visible");

    // Removes less class and slides up ALL visible content divs
    $(".less").removeClass("less");
    $(".content").slideUp(500);

    // Slide the clicked element's content div down and add less class,
    // but only if it's content was not originally visible. We don't want
    // to show it again if it was just hidden.
    if(!thisWasVisible){
        $thisContent.slideDown(500);
        $this.children(".more").addClass("less");
    }
});
Run Code Online (Sandbox Code Playgroud)