2013-07-23 73 views
0

我有以下代碼來做一個Ajax .get然後將數據插入到手風琴的一個部分。幾個問題,但:執行Ajax獲取手風琴擴展只有一次

1)它執行.get操作每次你點擊部分頭擴展。我如何才能讓這一切只發生一次?我試着用一個名爲loaded的布爾變量進行實驗,但這打破了整個事情。有沒有辦法在有關手風琴部分的擴展中執行.get?

$(document).ready(function(){ 
$('#studentQualsH3').click(function(){ 
    $.get('/srl/quals_ajax.html' , function(data){ 
     var dataArray = data.split('<!--AJAX DATA -->'); 
     $('#QualsCheckbox').before(dataArray[1]); 
     $('.unitButton').button(); 
     $('#MainApp').accordion({heightStyle: "content"}); 
     }); 
    }); 
}); 

2)如何返回手風琴狀態以自動適合返回的內容?行$('#MainApp').accordion({heightStyle: "content"});沒有這樣做。

感謝您的幫助!

安迪

編輯: 到其中的jQuery的功能應該插入數據的HTML如下:

<div id="MainApp"> 
    <h3 ID="studentQualsH3"><i class="icon-caret-right"></i>Qualifications</h3> 
    <div id="StudentQuals"> 
    <table id="QualsCheckbox"> 
    <tr><td>Qualifications meet required standard</td><td> 
    </div> <!-- End of StudentQuals Div --> 
<h3 ID="pStatH3"><i class="icon-caret-right"></i>Personal Statement</h3> 
<div id="PersonalStatment"> 
</div> <!-- End of PersonalStatement Div --> 
<h3 id="refH3"><i class="icon-caret-right"></i>References for Applicant</h3> 
<div id="AppRefs"> 
    </div> <!-- End of AppRefs Div --> 
    </div> <!-- End of MainApp Div --> 
+0

http://api.jquery.com/one/ –

+0

,如果我們能夠看到這將是最有幫助的您的HTML標記。例如,您希望響應顯示的主要元素是什麼? – DevlshOne

+0

另外,看看這個例子:http://jqueryui.com/tabs/#ajax –

回答

0

選擇了特定的手風琴節的時候要執行的AJAX程序,你會需要使用activate event。然而,一個更好的解決辦法可能是執行.get()只有一次,並存儲在一個全局變量的響應:

$(document).ready(function(){ 
    var qualsData; 
    $.get('/srl/quals_ajax.html' , function(qualsData){}); 
    $('#studentQualsH3').accordion({ 
     activate: function(event, ui) { 
      var dataArray = data.split('qualsData'); 
      $('#QualsCheckbox').before(dataArray[1]); 
      $('.unitButton').button(); 
     }, 
     heightStyle: 'content' 
    }); 
}); 
+0

這不起作用。我想也許是因爲#studentQualsH3是手風琴中的部分標題之一,實際的手風琴容器被稱爲#MainApp。我已經發布了上面頁面的標記。 –