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);
};
}
谁会帮我改一下,谢谢

解决方案 »

  1.   


    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);
    };
    }这样试试呢?
      

  2.   


    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拼错了,这样试试呢?
    楼主结贴率,唉~
      

  3.   

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

  4.   


    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下调试看看