2011-01-09 17 views
5

पर दो बार रिकॉर्डिंग। मैं AJAX का उपयोग बॉक्स में चुने गए विकल्पों के आधार पर गतिशील रूप से एक JquerUI Accordion उत्पन्न करने का प्रयास कर रहा हूं। वर्तमान में मैं जे एसJQueryUI कॉलिंग। एक आईडी

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

है अब यह पहली बार मैं अपने चयन को बदलने के काम करता है, लेकिन उसके बाद यह सादे पुराने अस्वरूपित एचटीएमएल में बदल जाती। जैसे कि .accordion() को कॉल कभी नहीं किया गया था। मुझे लगता है कि JQuery के साथ कुछ करने के लिए मुझे कुछ दोहराना नहीं चाहता है, लेकिन मुझे वास्तव में कोई जानकारी नहीं है। इससे पहले कि आप div खाली

उत्तर

6

कोशिश अकॉर्डियन को नष्ट करने और फिर से शुरू करने के लिए:

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

अधिक जानकारी here

शुभकामनाएं!

+0

आह उत्कृष्ट। मैंने इसे नष्ट करने के लिए एक विधि की तलाश की थी, मैंने उम्मीद नहीं की थी कि यह एक पैरामीटर होगा। धन्यवाद! – Ben

संबंधित मुद्दे