我是Coffeescript的新手,我希望传递一个函数作为参数,以便在动画完成时用作回调。现在,我的“回调”正在我的动画完成之前运行。
closeItem: ($elem) ->
@close($elem, @myCallback($elem))
close: ($elem, callback) ->
$elem.slideUp 300, (-> callback)
答案 0 :(得分:4)
您的问题是,当您拨打close
时,您正在呼叫您的功能。我们在这里重载术语,但您似乎想要“关闭”$elem
变量以实现此目的。试试这个:
closeItem: ($elem) ->
@close $elem, => @myCallback($elem)
close: ($elem, callback) ->
$elem.slideUp 300, callback
请注意以下几点:
我们在调用=>
时使用了胖箭@close
。这会创建一个包含当前对象上下文的函数,以便它可以调用@callback
然后关闭$elem
,以便它可以传递给@myCallback
此外,在close
函数本身中,您只需将回调传递给slideUp