我有一个动画,主要使用 jQuery 和 CoffeeScript。
我遇到了一个问题,但我不太明白。
class Cow
move_head: (x, y)=>
stander.animate({
left: 10,
},{
complete: @move_feet(x, y)
});
move_feet: (x, y)=>
stander.animate({
left: 10,
},{
complete: @mover_in_test
});
问题在于完整:@move_feet(x, y)
。当没有参数时,complete: @move_feet
代码工作正常,并且在 move_head
动画完成时调用 @move_feet
。但是,使用 complete: @move_feet(x, y)
时,@move_feet(x, y)
在 move_head(x, y)
时被调用> 被调用。
我查看了 CoffeeScript 的编译结果,即
在 complete: @move_feet(x, y)
情况下 complete: this.move_feet(x, y)
并且
在 complete: @move_feet
情况下为 complete: this.move_feet
。
因此,我认为它在解析代码后立即调用 complete: this.move_feet(x, y)
。但是,如何才能将代码的执行延迟到适当的时间?
最佳答案
当您编写 move_feet(x, y)
时,是的,这就是调用函数 move_feet
- 就像普通 JavaScript 中一样。如果您只编写 move_feet
,则不会调用它;它只是对函数的引用。你想要的是这样的:
complete: => @move_feet(x, y)
关于jquery - 使用 CoffeeScript 过早执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9387845/