2012-08-14 53 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