Jquery回调函数一遍又一遍地执行

时间:2010-04-01 06:18:34

标签: jquery function callback

这是我的jquery函数,

function getRecordspage(curPage, pagSize) {
   // code here
$(".pager").pagination(strarr[1], { callback: 
         function() { getRecordspage(2, 5);},current_page: curPage - 1, 
          items_per_page:'5',  num_display_entries: '5', next_text: 'Next', 
           prev_text: 'Prev', num_edge_entries: '1'
      });

}

我称之为jquery函数,

<script type="text/javascript">
         $(document).ready(function() {
             getRecordspage(1, 5);
         });

</script>

当你看到我的第一次工作正常而我的callback function被配置为current function本身......当它被调用时,callback被反复执行。 ......我怎么能阻止这个?任何建议......

修改

这是我的功能

function getRecordspage(curPage, pagSize) {
    $.ajax({
        type: "POST",
        url: "Default.aspx/GetRecords",
        data: "{'currentPage':" + curPage + ",'pagesize':" + pagSize + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(jsonObj) {
            var strarr = jsonObj.d.split('##');
            var jsob = jQuery.parseJSON(strarr[0]);
            var divs = '';
            $.each(jsob.Table, function(i, employee) {
                divs += '<div class="resultsdiv"><br /><span class="resultName">' + employee.Emp_Name + '</span><span class="resultfields" style="padding-left:100px;">Category&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.Desig_Name + '</span><br /><br /><span id="SalaryBasis" class="resultfields">Salary Basis&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.SalaryBasis + '</span><span class="resultfields" style="padding-left:25px;">Salary&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.FixedSalary + '</span><span style="font-size:110%;font-weight:bolder;padding-left:25px;">Address&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.Address + '</span></div>';
            });
            $("#ResultsDiv").append(divs);
         }
    });
}

2 个答案:

答案 0 :(得分:2)

这种情况下的回调函数是显示相应的内容,而不是分页,你的设置看起来应该更像这样:

var itemsPerPage = 5;
$(document).ready(function() {
  $(".pager").pagination(maxNumberOfElementsHere, { 
     callback: getRecordspage,
     items_per_page: itemsPerPage,
     num_display_entries: 5,
     next_text: 'Next', 
     prev_text: 'Prev',
     num_edge_entries: 1
  });
});

function getRecordspage(curPage) {
 // itemsPerPage is the new pagSize you have now
 // code here
}

答案 1 :(得分:0)

您在函数中调用函数的事实导致了问题。它导致无限循环,永远不会结束。

你需要给它一个IF语句,以便它在某个时候结束。