jquery - 使用 CoffeeScript 过早执行代码

标签 jquery coffeescript javascript

我有一个动画,主要使用 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/

相关文章:

javascript - 为什么JavaScript提示框太小?

javascript - 如何根据指令 Controller 中的值修改指令的 templateURL?

javascript - 使用 jQuery 更改 LESSCSS 变量

javascript - angular.module ('myapp',['chart.js']) Uncaught Error : [$injector:modulerr]

javascript - 无法让 jQuery addClass ("active") 工作

javascript - 从 Jquery AJAX 调用返回响应

linux - 应用程序 'appname' 无法在打开的 shift Node 应用程序上启动(端口 8080 不可用)

coffeescript - 下划线在 Coffeescript 的控制台中不起作用

javascript - list 中的 ExecJS::RuntimeError#index 错误

javascript - 动态构造javascript对象