在我撕裂头发,走上调试方面的错误道路之前。有没有人能确认这段代码会按预期执行。即。将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:意外的标记;在‘
()’行上...
发布于 2011-12-02 05:54:36
在需要逗号的地方有一些分号:
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
发布于 2011-12-02 05:54:45
那里有太多的分号
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){
发布于 2011-12-02 05:58:05
您在代码中犯了语法错误,如果使用static code analysis tools such as the lovely JSHint,您可以很容易地发现这些错误。
此外,您还应进一步了解comma operator在JavaScript中的使用,我们的网站有a few answers on it already。
https://stackoverflow.com/questions/8348792
复制相似问题