Je souhaite passer deux fonctions anonymes comme arguments pour le vol stationnaire de jQuery, de la manière suivante:
$('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 m'invite à la structure ci-dessus.
Mettez des parenthèses autour des fonctions anonymes.
Je pense que le problème consiste à utiliser des commentaires en ligne unique //
. Les commentaires en ligne se trouvant dans /* .. */
semblent fonctionner correctement. Voici un exemple équivalent avec quelque chose d'autre qu'un commentaire.
$('element').hover( -> console.log("first") -> console.log("second") )
Ou avec des commentaires utilisant /* .. */
.
$('element').hover( -> /* first */ -> /* second */ )
Vous pouvez essayer ces exemples sous l'onglet Try CoffeeScript . CoffeeScript ajoute une déclaration pour renvoyer la dernière expression de la fonction. Si vous vouliez des fonctions bare-bones 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 la barre oblique inverse après la fonction d'appelant, la virgule devrait être indentée correctement.
$('element').hover \ -> # do stuff on mouseover , -> # do stuff on mouseout
Sans parenthèse ou avec une barre oblique inverse :
f -> 0 , -> 1
Sortie sur 1.7.1:
f(function() { return 0; }, function() { return 1; });