jquery - 如何在第二次单击时关闭 jQuery Accordion 效果?

标签 jquery accordion

我最近购买了 Jake Rutter 的《Smashing jQuery》——这是一本好书,但我一直在修改一些“Accordion”代码。

当单击某个部分时,它会按预期展开,但如果第二次单击(仍打开时),它会关闭并立即再次打开。

我希望展开的部分在第二次单击时关闭,只有在单击时才再次打开。希望这是有道理的。任何帮助将不胜感激。

请参阅下面的演示 URL,了解我使用的示例和代码。 http://demos.d3-creative.com/accordion/accordion-1.html

最佳答案

你需要像下面这样的东西才能让它工作。查看评论:

var $header = $('.accordion-header'),//always cache your selectors
    $content = $('.accordion-content');

$header.click(function () {

    var $this = $(this),
        $relatedContent = $this.next();

    if($relatedContent.is(':visible')) { // If the tab is already open

        $relatedContent.slideUp('fast');

        $this.find('.icon-active').removeClass('icon-active');

        $this.removeClass('header-active');

    } else { // if the tab is closed

        // Close any other opened tabs
        $content.slideUp('fast');
        $header.removeClass('header-active');
        $header.find('span').removeClass('icon-active');

       // Open related tab
        $relatedContent.slideDown('fast');

        $this.find('span').addClass('icon-active');

        $this.addClass('header-active');
    }

});

并将 display:none 添加到 #accordion .accordion-content

关于jquery - 如何在第二次单击时关闭 jQuery Accordion 效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8780638/

相关文章:

php - 如何在 jQuery 的同一窗口中加载 PHP 页面

javascript - 使用 URL 打开 Bootstrap 4 Accordion

javascript - 使用 Accordion 或其他任何东西阅读更多选项

JavaFX:引用 CSS 中折叠和展开的 Accordion 状态

javascript - 使用 CSS 填充选中的复选框

javascript - 在重新运行之前等待使用 settimeout 的函数在 javascript 中完成

javascript - 将鼠标悬停在图像上,仅使背景变暗

javascript - 使用 jquery 实现无限滚动

jquery - Bootstrap3 Accordion 崩溃 : how to show opened div at the top?

javascript - Bootstrap Accordion ,单击时滚动到事件(打开) Accordion 的顶部?