我想扩展 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>