Я изменяю структуру аккордеона () и меняю ее на основе выбора с помощью AJAX.
Проблема в том, что, основываясь на документах аккордеона, я ожидаю, что он будет работать как
<h3>header</h3>
<div><anything></anything></div>
Создание h3 для заголовка и div для тела, но когда я использую ajax для его динамического создания, это облажается. Этот код специально использует правильный заголовок для первого окна аккордеона, но тело пусто, а следующий заголовок становится «Нет открытых окон сеанса ...», что явно не то, что я хотел. Полученный JSON находится здесь: http://benbuzbee.com/trs/json.php?show=sessions&courseid=5
$(function() {
$("#courseselect").change(function () {
$("#testselect").accordion("destroy").html(""); // Empty any previous data
$("#testselect").css("display", "block"); // Display it if it was hidden
$.getJSON('json.php?show=sessions&courseid=' + $(this).val(), function(data) {
for (x in data)
{
$("#testselect").append("<h3><a href=\"#\">" + data[x].name + "</a></h3>");
$("#testselect").append("<div>");
if (!data[x].sessions)
$("#testselect").append("<p>There are no open session windows for this test.</p>");
for (si in data[x].sessions)
{
$("#testselect").append("<a href=registerconfirm.php?sessionid=\""+data[x].sessions[si].uno+"\">"+data[x].sessions[si].location+"</a>");
}
$("#testselect").append("</div>");
}
$("#testselect").accordion();
//$("#testselect").accordion({ change:function(event, ui) { courseid = ui.newHeader.attr("value"); }
}); // End getJSON
}); // end .change
}); // end $()