我有以下代码来执行Ajax .get,然后将数据插入手风琴的一个部分。但有几个问题:
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 :(得分: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'
});
});