如何使用 jQuery 手风琴创建 div



我使用这个:

<script>
    $(function() {
        $( "#accordion" ).accordion();
    });
</script>

获得展开/折叠的效果。(如果您知道更好的插件或方法,请通知我)

我有这个div:<div id ="accordion"></div>

而这段代码在该div内创建一个按钮(不用担心按钮的内容)

$('#button_submit').click(function() 
{
$("#accordion").append(
$("<button id=saved"+j+">").click(function() {
drawChart.apply(null, myArray);
}).html("<b>Start date:</b>"+""+myArray[0]+"n<b>End date:</b>"+myArray[1]+"n<b>Chart type:</b>"+myArray[2]+"")
);

我的问题是,如何创建/格式化div手风琴以具有这种手风琴效果jquery。

因为<button id=saved"+j+">应该出现在sections内.

干杯

使用 示例更新 换句话说,已测试和工作

这是您需要的代码。正如我之前提到的,问题是您将按钮添加到主div 而不是部分。

jsFiddle (工作示例)

替代示例(可能更干净)

这个允许添加新的手风琴件(里面有按钮)

  • 注意:最后一个的棘手部分是您必须销毁手风琴并重新创建它,因此如果您有创建手风琴的特定选项,您可能希望将它们包装在一个单独的函数中,并在销毁后立即调用它

脚本

$(function() {
    $("#accordion").accordion();
    $("#accordion .ui-accordion-content").each(function(i) {
        $(this).append(
            $("<button />")
                .prop("id", "saved"+j+">")
                .html("<b>Start date:</b>"+""+myArray[0]+"n<b>End date:</b>"+myArray[1]+"n<b>Chart type:</b>"+myArray[2])
                .on("click", function(e) {
                    drawChart.apply(null, myArray);
                })
        );
    });
})

确保您的 HTML 布局正确无误。

示例网页

<div id="accordion">
    <h3>Section 1</h3>
    <div>
        <p>
        Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
        ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
        amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
        odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
        </p>
    </div>
    <h3>Section 2</h3>
    <div>
        <p>
        Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
        purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
        velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
        suscipit faucibus urna.
        </p>
    </div>
    <h3>Section 3</h3>
    <div>
        <p>
        Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
        Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
        ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
        lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
        </p>
        <ul>
            <li>List item one</li>
            <li>List item two</li>
            <li>List item three</li>
        </ul>
    </div>
    <h3>Section 4</h3>
    <div>
        <p>
        Cras dictum. Pellentesque habitant morbi tristique senectus et netus
        et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
        faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
        mauris vel est.
        </p>
        <p>
        Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
        Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
        inceptos himenaeos.
        </p>
    </div>
</div>

这是一个非常简单的手风琴插件。

http://viralpatel.net/blogs/create-accordion-menu-jquery/

$("#accordion > li > div").click(function(){
    if(false == $(this).next().is(':visible')) {
        $('#accordion ul').slideUp(300);
    }
$(this).next().slideToggle(300);
});
$('#accordion ul:eq(0)').show();

jQuery UI Accordion 需要一个特定的 HTML 结构。

底层 HTML 标记是一系列标头(H3 标签)和内容div,因此内容无需 JavaScript 即可使用。

http://jqueryui.com/accordion/

<div id="accordion">
    <h3>Section 1</h3>
    <div>
        <p>
        Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
        ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
        amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
        odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
        </p>
    </div>
    <h3>Section 2</h3>
    <div>
        <p>
        Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
        purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
        velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
        suscipit faucibus urna.
        </p>
    </div>
</div>

你不能只是在那里打一个按钮,期望它能工作。 您可以在这些部分中放置一个按钮。

最新更新