[英]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.