2010-04-01 6 views
0

Cette ma fonction jquery,fonction de rappel Jquery exécute encore et encore

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' 
     }); 

} 

et j'appeler cette fonction jquery,

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

</script> 

Comme vous le voyez mon Cela fonctionne très bien pour la 1ère fois et mon callback function est configuré pour le current function lui-même ... quand il est appelé le callback est exécuté encore et encore .... Comment puis-je empêcher cela? Toute suggestion ....

EDIT:

Ceci est ma fonction

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); 
     } 
    }); 
} 

Répondre

2

La fonction de rappel dans ce cas est d'afficher le contenu approprié, ne pas faire la mise en page, votre configuration devrait ressemble plus à ceci:

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 
} 
+0

@Nick comme vous l'avez dit dois-je passer la valeur pour 'curPage' sur la page cliquez sur –

+0

@Pandiya - Le plugin passe déjà currentPage et le panneau comme arguments à votre fonction de rappel. –

+0

@Nick 'strarr [1]' et curPage' valeur est nulle depuis que j'obtiens cette valeur dans la fonction 'getRecordspage' ... –

0

Le fait que vous appeliez la fonction dans la fonction est à l'origine du problème. Cela provoque une boucle infinie, et ne finira jamais.

Vous devez lui donner une instruction IF afin qu'elle se termine à un moment donné.

+0

@scott pouvez-vous me suggérer comment cela peut être fait .. –

Questions connexes