我想将用JavaScript编写的jQuery函数转换为Coffeescript,它将两个函数作为参数。我是Coffeescript的新手,我有点卡在这里。原始功能类似于:
$('#target').toggle(function() {
alert('First handler for .toggle() called.');
}, function() {
alert('Second handler for .toggle() called.');
});
在Coffeescript中看起来如何?
答案 0 :(得分:8)
实时查看coffeescript中某些内容如何工作的简单方法是转到official website并使用“Try Coffeescript”下拉窗格。我找到一种方法来输出与你想要的完全相同的代码就是这样做:
$('#target').toggle ->
alert 'First handler for .toggle() called.'
, ->
alert 'Second handler for .toggle() called.'
试一试。在网站上输入代码可能会有点奇怪,但我肯定觉得它很有用。
答案 1 :(得分:7)
@ genericdave的回答是正确的。这是一个替代方案,如果缺乏parens混淆你喜欢它我:
$('#target').toggle(
-> alert('First handler for .toggle() called.'),
-> alert('Second handler for .toggle() called.')
)
答案 2 :(得分:1)
也可以拥有两全其美的优点:没有@ genericdave的答案中的括号和@ Domenic中的优秀格式。您必须使用换行符:\
。
处理单行时:
$('#target').toggle \
-> alert "First handler for .toggle() called.",
-> alert "Second handler for .toggle() called."
处理具有多行代码的回调时:
$('#target').toggle \
->
alert "1st handler. First line"
alert "1st handler. Second line"
,->
alert "2nd handler. First line"
alert "2nd handler. Second line"