2011-01-09 10 views
5

AJAXを使用して、ボックスで選択されているものに基づいてJquerUI Accordionを動的に生成しようとしています。現在、私はJSJQueryUIが1つのidに2回の.accordionを呼び出す

$("#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"); 
       } }); 
      }); 
     }); 

<div style="display:none" id="testselect"> 
</div> 

を持っている今、これは私が私の選択を変更する最初の時間を動作しますが、その後、それは昔ながらのフォーマットされていないHTMLに戻ります。あたかも.accordion()の呼び出しが行われなかったかのように。私はこれがJQueryの何かを何かをフォーマットしたくないのとは関係があると思っていますが、実際には分かりません。

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

詳細情報hereを:

答えて

6

はあなたのdivを空にして、再度起動する前に、アコーディオンを破壊してみてください。

幸運を祈る!

+0

優れています。私はそれを破壊する方法を探していた、私はちょうどそれが.accordionのパラメータになることを期待していない、ありがとう! – Ben

関連する問題