在我撕掉我的头发并在调试方面走错路之前。有人可以确认此代码将按预期执行。 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
时,没有任何反应,我收到此错误:
Uncaught SyntaxError:意外的令牌;在'for()'行......
答案 0 :(得分:41)
你有一些分号,你想要逗号:
for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30) { /* do work */ }
for
for( [init]; [test]; [increments]) { [block] }
要执行多个[inits]
或[increments]
,您必须使用有时magical, but oft forgotten, comma operator
答案 1 :(得分:13)
那里有太多的分号
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){
答案 2 :(得分:2)
您在代码中犯了一些语法错误,如果您使用static code analysis tools such as the lovely JSHint,则可能很容易发现错误。
此外,您应该进一步了解JavaScript中comma operator的使用情况,我们的网站有a few answers on it already。