我正在尝试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);
答案 0 :(得分: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);
答案 1 :(得分: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);
}
});