2012-12-19 67 views
1

我是一个设计师,而不是一个程序员,我试图去习惯jQuery和JavaScript的一些实验(动画)...迄今为止,我管理了一些东西,但我在这一点上真的没有更进一步:我试图在循环中添加回调,让每个动画步骤在下一个动画步骤开始之前完成。问题是在这种情况下,只要我把它放入回调中,pick变量就返回“undefined”。我想这很容易解决,但是我一直在网上搜索几个小时,并且无法实现它的工作。jquery回调变量返回“undefined”

任何帮助,将不胜感激。

for (i = 0; i < pick.length; i++) 
{ 
    target= $('#'+pick[i]).css('left'); 
    console.log(target+'no1'); 

    $('#'+pick[i]).animate({'left':farright}, 1000, function() { 
     $('#'+pick[i]).css('left', farleft, function() { 
      $('#'+pick[i]).animate({'left':target}, 3000); 
     }); 
    });  
} 

回答

0

尝试

pick.each(function() { 
    target= this.css('left'); 
    console.log(target+'no1'); 

    this.animate({'left':farright}, 1000, function() { 
     this.css('left', farleft, function() { 
      this.animate({'left':target}, 3000); 
     }); 
    }); 
}); 

http://api.jquery.com/jQuery.each/

我不说实话知道能否解决你的某些问题,但它更优雅的使用,如果你使用的JQuery的反正

+0

谢谢你,我我会试试看.. –