2013-06-20 114 views
0

我想運行jquery遞歸函數。但我的代碼不起作用。需要幫助解決它jquery遞歸函數新手

function inserting(a, b){ 
    a = typeof a !== 'undefined' ? a : 0; 
    b = typeof b !== 'undefined' ? b : 50; 
    if(a < 5000){ 
     $.get("http://domain.com/process-query.php?start="+a+"&limit="+b,function(responseTxt,statusTxt,xhr){ 
      if(statusTxt=="success"){ 
       $("body").append(responseTxt); 
       a = a + b; 
       inserting(a,b); 
      } 
      if(statusTxt=="error") 
       alert("Error: "+xhr.status+": "+xhr.statusText); 
     }); 
    } 
} 
$(document).ready(function(){ 
    inserting(100, 50); 
}); 

感謝您的幫助

FYI:過程query.php將打印基於參數a和b一些文字

+2

你有什麼錯誤..? – Gautam3164

+1

我並不是想要自鳴得意,我可能只是簡單的錯誤,但是使用Ajax函數/遞歸調用就像是一種代碼味道。我不能把手指放在它上面,但是這個代碼只是尖叫YIKES!對我來說。但是,再一次,它可能是輝煌的,我只是沒有越過最初的反應。 –

+1

如果這是一個異步的Ajax調用,那麼你的代碼不是遞歸的。至於「不起作用」,它應該做什麼,它目前做了什麼?瀏覽器控制檯中的任何錯誤? – nnnnnn

回答

0

據工作實際上可以: http://jsfiddle.net/balintbako/4ZFDU/

有點簡化的版本,所以你可以看到「遞歸」或任何與阿賈克斯:)

function inserting(a){ 
    if (a < 5){ 
     $.get("/echo/jsonp", function(responseTxt,statusTxt,xhr){ 
      if(statusTxt == "success"){     
       $("div").append("<p>"+ a + "<p>"); 
       a = a + 1; 
       inserting(a);     
      } 
      if(statusTxt == "error") 
       alert("Error: "+xhr.status+": "+xhr.statusText); 
     }); 
    } 
} 
inserting(3); 
+0

謝謝它的作品。我的代碼實際上也起作用,我的錯誤在process-query.php。對不起所有 – user770668