我想传递两个匿名函数作为jQuery悬停的参数,如下所示:
$('element').hover(
function() {
// do stuff on mouseover
},
function() {
// do stuff on mouseout
}
);
只需一个就可以轻松实现 - hover ->
- 但CoffeeScript中两种语法的正确用法是什么?我尝试了...hover ->
,...hover( ->...
等等,但没有任何东西可以让我获得上述结构。
答案 0 :(得分:52)
我认为问题在于使用单行注释//
。 /* .. */
中包含的单行注释似乎运行正常。这是一个与评论不同的等效示例。
$('element').hover(
-> console.log("first")
-> console.log("second")
)
或使用/* .. */
进行评论。
$('element').hover(
-> /* first */
-> /* second */
)
您可以在Try CoffeeScript标签下试用这些示例。 CoffeeScript添加一个return语句来返回函数的最后一个表达式。如果您希望裸机功能无效且最后不包含return
,请尝试:
$('element').hover(
() ->
() ->
)
// $('element').hover(function() {}, function() {});
答案 1 :(得分:24)
将括号括在匿名函数周围。
答案 2 :(得分:21)
另一种方法是在调用函数之后使用反斜杠,逗号应正确缩进。
$('element').hover \
-> # do stuff on mouseover
,
-> # do stuff on mouseout
答案 3 :(得分:8)
没有括号或反斜杠:
f ->
0
, ->
1
1.7.1的输出:
f(function() {
return 0;
}, function() {
return 1;
});