添加jQuery Accordion元素时,需要新元素默认打开
When adding a jQuery Accordion element, need new element to default open
我有一个动态创建新元素的手风琴。但是,当我这样做时,我似乎无法让最新的元素默认打开。它总是第一个元素
想法?
HTML:
<asp:MultiView ID="MainView" runat="server">
<asp:View ID="View1" runat="server">
<table style="width: 100%; border-width: 3px; border-color: #C4F691; border-style: solid">
<tr>
<td>
<div class="rowClassSpace">
</div>
<div id="accordion">
<a href="#">Make/Model (Insured Vehicle)</a>
<div>
<p>
Content
</p>
</div>
</div>
<div>
<button id="addAccordion">
Add Another Vehicle</button>
</div>
</td>
</tr>
</table>
</asp:View>
</asp:MultiView>
JS:
// Initialize accordion
$(document).ready(function () {
$(function () {
$("#accordion").accordion();
});
});
// Adding according sections
$('#addAccordion').click(function () {
});
function addAccordion() {
var active = $('#accordion').accordion('option', 'active');
$('#accordion').append('<a href="#">Make/Model (Other Car #)</a><div><p>New data</p></div>').accordion('destroy').accordion({ active: active});
}
建议使用destroy
方法销毁现有的,然后添加新的部分,然后初始化新的手风琴实例。此外,你使用的标记似乎很奇怪,使用<a>
标签
通过计算现有部分,您可以将active
索引设置为添加新部分之前的部分数量,以便打开添加的最新部分
var template=function(ctr){
/* using html markup per docs*/
return '<h3>Section '+ctr+'</h3><div>Content '+ctr+'</div>';
};
var accordOptions={
collapsible:true,
active:0
};
var $accord=$('#accordion').accordion(accordOptions);
$('button').click( addSection);
function addSection(){
var num_sections=$accord.children('h3').length;
/* set active index to number of current sections*/
accordOptions.active=num_sections;
$accord.accordion('destroy')
.append( template( num_sections +1 ) )
.accordion( accordOptions);
}
演示:http://jsfiddle.net/HnVqD/
相关文章:
- 是否可以同时为一个元素的所有事件指定阻止默认值
- Android默认浏览器:谷歌地图制作“;位置:相对;元素在页面顶部滚动
- jQuery默认情况下不隐藏元素
- 如何在更改的事件处理程序中忽略Polymer元素上默认属性的初始覆盖
- 在javascript中阻止文档执行默认操作时,在单个元素中使用默认事件
- AngularJS:如何默认显示元素,并在按下按钮时切换
- 如何在用户离开Jquery Mobile中的页面后恢复默认HTML元素
- 如何将框元素默认组合为顶部角度 JS
- 如何在元素的默认行为之后运行单击功能
- 将新元素作为指令的默认元素应用
- 反转 HTML 元素中子项的默认 z 索引
- 如何在元素上设置默认 focus()
- 在 Javascript 中,如何从父事件处理程序中防止子元素的默认
- 零剪贴板元素在位于辅助/非默认 jQuery 选项卡中时不起作用
- 应用 css 高度后获取网页上元素的默认高度)
- 如何将自定义属性添加到 HTML 环境,该属性将默认为元素的每个新实例上的空对象
- 在 asp.net 中设置表单元素默认值
- 当我按下HTML5视频元素的默认全屏按钮时,如何捕获全屏事件
- AJAXed Select表单元素默认为第一个选项,即使更改
- 添加jQuery Accordion元素时,需要新元素默认打开