Javascript jQueryAccordion在清空并重新创建其内容后不工作

Javascript jQueryAccordion在清空并重新创建其内容后不工作,javascript,jquery,html,jquery-ui-accordion,Javascript,Jquery,Html,Jquery Ui Accordion,您将看到单击divA时,divAA将向下滑动。单击divB,divBB将向下滑动 清除主DIV并再次添加相同内容后,手风琴停止工作,如本演示所示: 有人能解释一下它为什么停止工作以及如何修复它吗?试试看 您需要在清除它之前重置accordion小部件。仅调用.accordion()将不起作用,因为accordion已为#content元素初始化,因此需要使用.accordion('destroy')方法从#content中删除现有的accordion小部件 function createAcco

您将看到单击divA时,divAA将向下滑动。单击divB,divBB将向下滑动

清除主DIV并再次添加相同内容后,手风琴停止工作,如本演示所示:

有人能解释一下它为什么停止工作以及如何修复它吗?

试试看

您需要在清除它之前重置accordion小部件。仅调用
.accordion()
将不起作用,因为
accordion
已为
#content
元素初始化,因此需要使用
.accordion('destroy')
方法从
#content
中删除现有的accordion小部件

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();                
}
函数createAccordion(){
$(“#内容”).手风琴({
主动:-1,
可折叠的:是的,
自动高度:false,
泰勒:是的
});
}
$(文档).ready(函数(){
创建手风琴();
});
函数clearAndAdd(){
$(“#内容”).accordion(“销毁”).empty();
$(“#内容”).append('DIV ID ADIV ID AADIV ID BDIV ID BB');
创建手风琴();
}

这里,accordion的创建被抽象为一个单独的方法,因为它必须使用两次。

您的问题在于删除accordion功能附加到的原始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();
        } 

谢谢你给我看这个。。。但问题是什么?您知道jQuery是一个用JavaScript编写的库。这并不是两件完全不同的事情。@roine-“Jquery无法工作”绝对不是问题。不仅“Jquery无法工作”不是问题,甚至不是事实:在这种情况下,Jquery完全按照它所说的去做。。。无论如何,我已经编辑了这个问题以包含一个实际的问题。谢谢<代码>$(“#内容”).accordion('destroy').accordion()已工作此操作不会使用您设置的初始属性,如
{active:-1,collapsable:true,autoHeight:false,clearStyle:true}
,您需要重新设置这些属性。
$("#content").accordion('destroy').accordion();