javascript - 创建 jQuery Accordion 插件的困难( super 整洁!)

标签 javascript jquery accordion

我正在创建一个供个人使用的 jQuery Accordion 插件。

我的主要目标是拥有 super 简洁的 JS 代码和 HTML 结构。

这就是我已经走了多远 http://jsfiddle.net/QA2eH/

HTML 结构:

<div class="accordion">

    <div class="accordion-wrapper">
        <div class="accordion-toggle">
            Collapsible Group Item #1
        </div>
        <div class="content">
            <p>Mea regione persecuti ne. suscipi one antur duo ne, elitr voluptua conceptam at eam</p>
        </div>
    </div>

    <div class="accordion-wrapper">
        <div class="accordion-toggle">
            Collapsible Group Item #2
        </div>
        <div class="content">
            <p>Mea regione persecuti ne. suscipi one antur duo ne, elitr voluptua conceptam at eam</p>
        </div>
    </div>

    <div class="accordion-wrapper">
        <div class="accordion-toggle">
            Collapsible Group Item #3
        </div>
        <div class="content">
            <p>Mea regione persecuti ne. suscipi one antur duo ne, elitr voluptua conceptam at eam</p>
        </div>
    </div>

</div>

JS代码(尚未完成)

$(function(){
        $('.accordion .accordion-wrapper .accordion-toggle').on('click',function(){
            $(this).next('.content').slideDown(300).parent().addClass('active').siblings().removeClass('active');
        });
});





快速摘要:

使用父函数和同级函数,单击切换将为其包装器添加一个类名.active,并将从其余包装器中删除该类名。


我不能做什么:

SlideUp/隐藏所有非“.active”包装器内的内容


我将感谢您的帮助。

最佳答案

你可以使用这个:

$(function () {
    $('.accordion .accordion-wrapper .accordion-toggle').on('click', function () {
        $(this)
        .next('.content')
        .slideDown(300)
        .parent()
        .addClass('active')
        .siblings()
        .removeClass('active')
        .find('.content')
        .slideUp(300);
    });
});

Demo

我将 .find('.content').slideUp(300); 添加到您的链中。

关于javascript - 创建 jQuery Accordion 插件的困难( super 整洁!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727378/

相关文章:

javascript - 从数组中随机反射时重复相同的值

javascript - XMLHttpRequest 中哪些字符是安全的?

javascript - 仅向单击的元素及其子元素添加类

javascript - 使用 if、else if、else 语句设置变量的最佳方法是什么

JQuery Accordion ,根据高度定位页脚

javascript - jQuery Accordion 不起作用

javascript - 如何在不刷新页面的情况下重置 Chrome/node-webkit 中的 WebRTC 状态?

jquery - 为什么 .submit() 无法使用 Bootstrap Datepicker 处理changeDate?

javascript - 使用 jQuery/AJAX 从 Cherrypy 服务器获取 JSON 数据

JavaScript Accordion - 关闭