+ -
当前位置:首页 → 问答吧 → js setTimeout 问题 高手请进!

js setTimeout 问题 高手请进!

时间:2011-12-07

来源:互联网

function doLoadFlow(str){
nodes=new Array();
lines=new Array();
eval(str);
for(var i=0;nn!=null&&i<nn.length;i++){
var node=new Node();
node=mixIn(nn[i],node);
node.type=typeToNum(node.type);
setTimout(function(){//setTimeout里怎么就执行最后一次循环啊,
node.position=new Position(node.position.top,node.position.left);
nodes[node.index]=node;
alert(node.index);//node.index应该是从1-7,但是弹出7次7
createNode(node);
canDragOfNode(node.index);

},1000);
};
}
谁会帮我改一下,谢谢

作者: lx_12345678   发布时间: 2011-12-07

JScript code

function doLoadFlow(str){
nodes=new Array();
lines=new Array();
eval(str);
for(var i=0;nn!=null&&i<nn.length;i++){
var node=new Node();
node=mixIn(nn[i],node);
node.type=typeToNum(node.type);
setTimout((function(node){return function(){//setTimeout里怎么就执行最后一次循环啊,
node.position=new Position(node.position.top,node.position.left);
nodes[node.index]=node;
alert(node.index);//node.index应该是从1-7,但是弹出7次7
createNode(node);
canDragOfNode(node.index);

})(node),1000);
};
}


这样试试呢?

作者: sharkdbj   发布时间: 2011-12-07

定时没好时

作者: lx_12345678   发布时间: 2011-12-07

JScript code

function doLoadFlow(str){
nodes=new Array();
lines=new Array();
eval(str);
for(var i=0;nn!=null&&i<nn.length;i++){
var node=new Node();
node=mixIn(nn[i],node);
node.type=typeToNum(node.type);
setTimeout((function(node){return function(){//setTimeout里怎么就执行最后一次循环啊,
node.position=new Position(node.position.top,node.position.left);
nodes[node.index]=node;
alert(node.index);//node.index应该是从1-7,但是弹出7次7
createNode(node);
canDragOfNode(node.index);

};})(node),1000);
};
}



你自己timeout拼错了,这样试试呢?
楼主结贴率,唉~

作者: sharkdbj   发布时间: 2011-12-07

我在我自己代码写的是正确的 嘻嘻,但是定时也不好使

作者: lx_12345678   发布时间: 2011-12-07

是不是应该把setTimeout放在for循环外面啊,我试了也不好使

作者: lx_12345678   发布时间: 2011-12-07

1楼应该是正确的~

作者: Legend1988   发布时间: 2011-12-07

JScript code

function doLoadFlow(){


for(var i=0;i < 10;i++){
var node=new Node();
var nodes = [];
node.index = i;
setTimeout((function(node){
   return function(){//setTimeout里怎么就执行最后一次循环啊,
               nodes[node.index]=node;
               alert(node.index);//node.index应该是从1-7,但是弹出7次7
   };})(node),1000)};
}

function Node(){
   this.index = 0;
}
doLoadFlow();


我这样是好使的,不知道你是什么原因,可以在firebug下调试看看

作者: sharkdbj   发布时间: 2011-12-07