Javascript 如何使用setInterval多次调用函数?

Javascript 如何使用setInterval多次调用函数?,javascript,ajax,Javascript,Ajax,我试着做了10次for循环,我写了setInterval来再次调用我的函数,但它不起作用。我的for循环只转了十圈。那我该怎么办呢 function randomThumbNews() { for(var i=0;i<10;i++){ $.ajax({ type: "get", url: "Home/Oku", data: {}, success: function (data) {

我试着做了10次for循环,我写了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);
函数randomThumbNews(){
对于(var i=0;i而言,问题在于——当

已调用循环,因此
i
将始终为10

您将只看到发布到您的
之一的结果

这将修复它,因为函数参数没有闭包:

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);
函数ajaxAndSet(计数器)
{
$.ajax({
键入:“获取”,
网址:“主页/奥库”,
数据:{},
成功:功能(数据)
{
$(“#拇指新闻”+计数器).html(数据);
}
});
)
函数randomThumbNews()
{
对于(var i=0;i尝试以下方法:

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

您是否检查了错误控制台?您发布的代码是错误的。您已将
setInterval()放入
在一个对象文本中,这是无效的语法。我很惊讶代码居然能运行。你能解释一下你想做得更好一点吗?你说你试图运行它10次,但它运行了10次?这是JS n00b通常的问题,它期望闭包中的
I
在执行时与声明c时一样losure。选择器每次的计算结果都是
#thumbnews\u 10
,这是他想说的。有点离题,但您发布的代码效率很低。最好每x个时间发送一个请求,以返回10条新闻(或您得到的任何内容),而不是每x个时间执行10个ajax请求!techfoobar-我相信这仍然会有同样的问题。
$.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);
    }
});