JQueryUI在一个id上调用.accordion两次

Ben*_*Ben 5 javascript jquery jquery-ui

我正在尝试使用AJAX根据框中选择的内容动态生成JquerUI手风琴.目前我有

 <div style="display:none" id="testselect">
 </div>
Run Code Online (Sandbox Code Playgroud)

用JS

$("#courseselect").change(function () {
                $("#testselect").html(""); // Empty any previous data
                $("#testselect").css("display", "block"); // Display it if it was hidden
                $.getJSON('json.php?show=tests&courseid=' + $(this).val(), function(data) { 
                for(x in data)
                {
                    $("#testselect").append("<h3 value=\"" + data[x].uno + "\"><a href=\"#\">" + data[x].name + "</a></h3>");
                    $("#testselect").append("<div>Foo</div>");
                }
                $("#testselect").accordion({ change:function(event, ui) {  courseid = ui.newHeader.attr("value");
                 } });
            });
      });
Run Code Online (Sandbox Code Playgroud)

现在,这是我第一次更改选择时的工作,但之后它将恢复为普通的未格式化的HTML.好像从未完成对.accordion()的调用.我猜这与JQuery有关,不希望我格式化两次,但我真的不知道.

Gon*_*lde 6

在清空div之前尝试摧毁手风琴并重新开始:

$("#courseselect").change(function () {
    $("#testselect")
        .accordion("destroy")
        .empty() // equivalent to .html("");
    $.getJSON(...
Run Code Online (Sandbox Code Playgroud)

更多信息在这里.

祝好运!