您将看到点击divA时,divAA将向下滑动。单击divB时,divBB将向下滑动。
清除主DIV并再次添加相同内容后,手风琴停止工作,如本演示所示:http://jsfiddle.net/p7vUk/2/
有人可以解释为什么它会停止工作以及如何解决它?
答案 0 :(得分:4)
尝试this。
您需要在清除之前重置手风琴小部件。由于.accordion()
已为accordion
元素初始化,因此只需调用#content
即可生效,因此您需要使用#content
方法从.accordion('destroy')
删除现有的折叠小部件
function createAccordion(){
$("#content").accordion({
active: -1,
collapsible: true,
autoHeight: false,
clearStyle: true
});
}
$(document).ready(function () {
createAccordion();
});
function clearAndAdd() {
$("#content").accordion( "destroy" ).empty();
$("#content").append('<div id="a">DIV ID A</div><div id="aa">DIV ID AA</div><div id="b">DIV ID B</div><div id="bb">DIV ID BB</div>');
createAccordion();
}
这里手风琴的创作被抽象为一个单独的方法,因为它必须使用两次。
答案 1 :(得分:3)
您的问题是删除手风琴功能附加到的原始DOM对象。仅仅因为你添加新的并不意味着它是一回事。它们是完全新的元素,因此你必须再次在它们上面运行手风琴功能。这就像我可以让它听起来一样笨拙。
所以试试这个......
function clearAndAdd() {
$("#content").empty();
$("#content").append('<div id="a">DIV ID A</div><div id="aa">DIV ID AA</div><div id="b">DIV ID B</div><div id="bb">DIV ID BB</div>');
$("#content").accordion();
}
如果最后一个新行不起作用,请尝试使用
$("#content").accordion('destroy').accordion();