0

我有以下代码来执行 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 -->
4

1 回答 1

0

要在选择特定手风琴部分时执行 AJAX 例程,您需要使用activate 事件。但是,更好的解决方案可能是只执行.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'
    });
});
于 2013-07-23T14:34:56.397 回答