如何将带有两个函数参数的jQuery函数转换为Coffeescript

时间:2011-09-07 15:02:50

标签: javascript jquery coffeescript

我想将用JavaScript编写的jQuery函数转换为Coffeescript,它将两个函数作为参数。我是Coffeescript的新手,我有点卡在这里。原始功能类似于:

$('#target').toggle(function() {
  alert('First handler for .toggle() called.');
}, function() {
  alert('Second handler for .toggle() called.');
});

在Coffeescript中看起来如何?

3 个答案:

答案 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"