Javascript for循环中的多个计数器
在我将头发撕掉并在调试方面走错路之前。 有人可以确认此代码将按预期执行。 IE浏览器。 动画5个div到不同的位置:
var i, j, k; $('#menuButton').click(function(){ for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){ $('.spinner #item' + i).animate({ left: '+=' + j, bottom: '+=' + k }, 500, function() { // Animation complete. }); } });
当我点击#menuButton
,没有任何反应,我收到此错误:
未捕获的SyntaxError:意外的令牌; 在’for()’行……
你有一些分号,你想要逗号:
for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30) { /* do work */ }
你的内部应该只有三个“陈述”
for( [init]; [test]; [increments]) { [block] }
要做多个[inits]
或[increments]
你必须使用有时神奇的,但经常被遗忘的逗号运算符
那里有太多的分号
for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){
应该
for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30){
如果您使用静态代码分析工具(如可爱的 JSHint),那么您在代码中发现了一些您可能很容易发现的错误。
另外,您应该进一步了解JavaScript中逗号运算符的使用,我们的站点已经有了一些答案 。