【问题标题】:How to trigger Accordion on clicking of a Button in jQuery?如何在点击 jQuery 中的按钮时触发 Accordion?
【发布时间】:2011-09-22 16:42:00
【问题描述】:

我想在单击最小化按钮时触发手风琴,或者更具体地说,当我们单击最小化按钮时,对话框的内容部分会被隐藏。

HTML代码:

<div id="dialog" title="Title">
<div>
<p>Some Content</p>
</div>
</div>
<button>Minimize</button>

脚本代码:

$(function (){
$("#dialog").dialog();
$("button").button({icons:{primary: "ui-icon-minus"},text: false}).insertBefore('.ui-dialog-titlebar-close').click(function(){ 
$("#dialog").accordion({collapsible: true});
});
});

【问题讨论】:

    标签: jquery jquery-ui button hide accordion


    【解决方案1】:

    您需要在对话框小部件上触发手风琴,而不是原来的&lt;div&gt; 元素。您还需要明确指定标题栏作为手风琴标题:

    $("#dialog").dialog("widget").accordion({
        collapsible: true,
        header: "> .ui-dialog-titlebar"
    });
    

    您可以在this fiddle 进行测试。

    编辑:手风琴可能不是将对话框折叠到其标题的最佳选择,特别是如果您只希望按钮触发效果。也许您可以改用slideToggle()

    $("#dialog").slideToggle("fast");
    

    更新小提琴here

    【讨论】:

    • 感谢您的回复,但我只想折叠内容,并且单击按钮时标题应保持原样。
    • @Piyush,在我应用样式之前,标题确实保留了,但你是对的,显然手风琴搞砸了:) 我通过指定标题选择器让它工作,请参阅我更新的答案.
    • édéric 非常感谢,这确实是一个很好的解决方案,我一直在尝试这样做,但无法达到结果。现在,唯一剩下的是整个标题栏充当标题(单击栏中的任意位置),但我只想最小化按钮来做这件事。
    • @Piyush,在那种情况下,也许你不需要手风琴。答案相应更新:)
    • édéric 太棒了,这正是我想要做的 :))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多