Je veux passer deux fonctions anonymes comme arguments pour le survol de jQuery, comme ceci:
$('element').hover(
function() {
// do stuff on mouseover
},
function() {
// do stuff on mouseout
}
);
C'est facile avec un seul - hover ->
- mais quelle est la syntaxe appropriée dans CoffeeScript pour deux? J'ai essayé ...hover ->
, ...hover( ->...
, etc. mais rien ne me donne la structure ci-dessus.
Mettez des parenthèses autour des fonctions anonymes.
Je pense que le problème réside dans l'utilisation des commentaires sur une seule ligne //
. Commentaires sur une seule ligne entre /* .. */
semble bien fonctionner. Voici un exemple équivalent avec autre chose qu'un commentaire.
$('element').hover(
-> console.log("first")
-> console.log("second")
)
Ou avec des commentaires en utilisant /* .. */
.
$('element').hover(
-> /* first */
-> /* second */
)
Vous pouvez essayer ces exemples sous l'onglet Try CoffeeScript . CoffeeScript ajoute une instruction return pour renvoyer la dernière expression de la fonction. Si vous vouliez des fonctions simples qui ne font rien et ne contiennent pas de return
à la fin, essayez:
$('element').hover(
() ->
() ->
)
// $('element').hover(function() {}, function() {});
Une autre façon consiste à utiliser barre oblique inverse après la fonction appelant, la virgule doit être mise en retrait correctement.
$('element').hover \
-> # do stuff on mouseover
,
-> # do stuff on mouseout
Sans parenthèses ni barre oblique inverse:
f ->
0
, ->
1
Sortie sur 1.7.1:
f(function() {
return 0;
}, function() {
return 1;
});