如何以编程方式打开 jquery 折叠项内容面板



我想扩展 jquery 手风琴的默认行为,并在内容面板中添加一个 NEXT 按钮。当用户单击内容面板中的"下一步"按钮时,折叠面板应打开下一项。

我能够像这样找到下一个项目$(this).parent().next()但无法触发实际操作。

<div id="accordion">
   <h3><a href="#">Item 1</a></h3>
   <div>Item 1 content<br />
      <div onclick="$(this).parent().next().show();">NEXT</div>
   </div>
   <h3><a href="#">Item 2</a></h3>
   <div>Item 2 content<br />
   </div>
</div>

如果这是jQuery UI Accordion小部件,你应该使用它的内置方法。

var $accordion = $("#accordion").accordion();
function openNextAccordionPanel() {
    var current = $accordion.accordion("option","active"),
        maximum = $accordion.find("h3").length,
        next = current+1 === maximum ? 0 : current+1;
    // $accordion.accordion("activate",next); // pre jQuery UI 1.10
    $accordion.accordion("option","active",next);
}

.html:

<div onclick="openNextAccordionPanel();">NEXT</div>

我的手风琴只有一个内容div(0索引),在回发时,我正在注册脚本以在重新创建后再次打开手风琴($("#accordion").accordion({ collapsible: true, active: true });$("#accordion").show();)将布局放置在触发回发之前用户所在的位置。

.HTML:

<div id="accordion" style="display: none">
    <h3>ACCORDION TITLE</h3>
    <div class="col-lg-12" style="overflow: hidden">

Javascript函数:

 $("#accordion").accordion({ active: 0 });
 $('.ui-accordion-content').css('height', 'auto');

为了让你的代码完美地工作,你应该修改你的html

,如下所示
<div id="accordion">
   <h3><a href="#">Item 1</a></h3>
   <div class='showable'>Item 1 content<br />
      <div onclick="$(this).parent('.showable').hide().next().show();">NEXT</div>
   </div>
   <h3><a href="#">Item 2</a></h3>
   <div class='showable'>Item 2 content<br />
   </div>
</div>

最新更新