我正在尝试使用 AJAX 根据框中选择的内容动态生成 JquerUI Accordion 。目前我有
<div style="display:none" id="testselect">
</div>
使用 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");
} });
});
});
现在这在我第一次更改我的选择时有效,但之后它恢复为普通的旧的未格式化的 HTML。好像从未完成对 .accordion() 的调用。我猜这与 JQuery 不希望我格式化两次有关,但我真的不知道。
最佳答案
在清空 div 并重新开始之前尝试破坏 Accordion :
$("#courseselect").change(function () {
$("#testselect")
.accordion("destroy")
.empty() // equivalent to .html("");
$.getJSON(...
更多信息 here .
祝你好运!
关于javascript - JQueryUI 在一个 id 上调用 .accordion 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636987/