原型ajax和setTimeout存在问题。这是我的代码缩短:
//new ajax request
....onComplete: function (transport) { //json as this -> array[$i].something
var json = transport.responseJSON;
var $i = 0;
window.setTimeout(function () {
SLOW();
},
500); //display every json[$i] with custom delay
function SLOW() {
$i++;
if (json[$i].something !== null) { //insert in proper div id in the html document
window.setTimeout(function () {
$('document_div' + json[$i].something).innerHTML = json[$i].something_to_display;
},
500);
window.setTimeout(function () {
$('document_div' + json[$i].something).innerHTML = json[$i].something_to_display;
},
1000);...window.setTimeout(function () {
SLOW();
},
500);
} else {
//stop and continue
}
收到此错误:json[$i]
未定义。
编辑:看起来我在第二次超时时收到此错误,第一次正确更改了div。
答案 0 :(得分:0)
完成。
解决方案是在setTimeout
中使用它之前再次重新调整json。
var json_something = json[$i].something; //and so on...
var json_something_to_display = json[$i].something_to_display
window.setTimeout(function() { $('document_div'+json_something).innerHTML = json_something_to_display; }, 500);
有人可以解释为什么需要它吗?为什么var
json是不够的,并且在一个window.setTimeout
函数之后某个地方消失了?