14

我想扩展 jquery 手风琴的默认行为并在内容面板中添加一个 NEXT 按钮。当用户单击内容面板内的 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>
4

3 回答 3

32

如果这是 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>
于 2012-06-14T21:18:13.037 回答
1

我的手风琴只有一个内容 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');
于 2017-08-02T16:03:35.727 回答
0

为了让您的代码完美运行,您应该如下修改您的 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>
于 2012-06-27T14:20:55.893 回答