2012-08-14 36 views
0

我試圖做一個for循環10次,我寫了setInterval再次調用我的函數,但它不工作。我的for循環只有十個。那我該怎麼辦?如何使用setInterval多次調用我的函數?

function randomThumbNews() { 
     for(var i=0;i<10;i++){ 
     $.ajax({ 
      type: "get", url: "Home/Oku", data: {}, 
      success: function (data) { 
       $("#thumbNews_" + i).html(data); 
      } 
     }); 
     } 
    } 
setInterval(randomThumbNews, 3000); 
+0

你檢查錯誤控制檯?你發佈的代碼是錯誤的。 – Utkanos 2012-08-14 15:03:39

+1

您已將'setInterval()'放入對象文字中,這是無效的語法。我很驚訝代碼可以運行。 – 2012-08-14 15:03:48

+0

我已經編輯我的問題和我的腳本 – 2012-08-14 15:07:08

回答

0

問題是這樣的 - 當

function (data) { 
    $("#thumbNews_" + i).html(data); 
} 

,稱作循環已經finshed所以i將永遠是10

你只會看到結果張貼到您<div>之一s

這將修復它,因爲功能參數沒有關閉:

function ajaxAndSet(counter) 
{ 
    $.ajax({ 
      type: "get", 
      url: "Home/Oku", 
      data: {}, 
      success: function (data) 
      { 
       $("#thumbNews_" + counter).html(data); 
      } 
     }); 
) 

function randomThumbNews() 
{ 
    for(var i=0;i<10;i++) 
    { 
     ajaxAndSet(i); 
    } 
} 

setInterval(randomThumbNews, 3000); 
0

試着這麼做:

$.ajax({ 
    type: "get", url: "Home/Oku", data: {}, 
    context: i, /* NEW - this value comes to your success callback as 'this' */ 
    success: function (data) { 
     $("#thumbNews_" + this).html(data); 
    } 
}); 
+0

它不工作夥伴 – 2012-08-14 15:31:15

+0

techfoobar - 這仍然會有我相信的相同問題。 – Hogan 2012-08-14 15:38:33