簡體   English   中英

如何使用setInterval多次調用函數?

[英]How can I call my function multiple times using setInterval?

我試圖做一次for循環10次,我寫了setInterval再次調用我的函數,但是它不起作用。 我的for循環只有十個。 那我該怎么辦?

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

問題是-什么時候

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

被稱為循環已經結束,所以i將永遠是10。

您只會看到結果發布到您的<div>

由於函數參數沒有閉包,因此可以解決此問題:

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

嘗試類似:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM