2012-06-25 18 views
7

Ja próbuje to w coffeescript:coffeescript i jQuery łańcuchowym

$(element).mousedown(aFunction).mouseup(anotherFunction); 

Staram się wypracować drogę do skorzystania z myślnikiem tak, że coś takiego jak poniżej powróci co o:

$ element 
    .mousedown aFunction 
    .mouseup anotherFunction 

Ale bez rezultatu, czy są jakieś zalecenia dotyczące łączenia w coffeescript?

+2

możliwy duplikat [Coffeescript - Metoda łańcuchowa z argumentami funkcji] (http://stackoverflow.com/questions/5144191/coffeescript-method-chaining-w-function-arguments) –

Odpowiedz

12

Jestem pewien, że nie chcesz używać nawiasów, ale ...

$("#element") 
    .mousedown(aFunction) 
    .mouseup(anotherFunction) 

gromadzi do

$("#element").mousedown(aFunction).mouseup(anotherFunction); 
+0

Myślę, że to jest poprawne rozwiązanie w chwila, chociaż ten problem [był] (https://github.com/jashkenas/coffee-script/issues/1495) [był] (https://github.com/jashkenas/coffee-script/issues/1407) [ podniesiony] (https://github.com/jashkenas/coffee-script/issues/1889) [wiele] (https://github.com/jashkenas/coffee-script/issues/944) [razy] (https://github.com/jashkenas/coffee-script/issues/2114) w [CoffeeScript's GitHub] (https://github.com/jashkenas/coffee-script), więc niektóre wsparcie dla tego rodzaju zagnieżdżania może pojawić się w przyszłości = re – epidemian

1

Dla wszystkich innych szybkich czytelników tam, tu jest aktualizowany odpowiedź przez a paid nerd podana here.

req = $.get('foo.html') 
    .success (response) -> 
    do_something() 
    .error (response) -> 
    do_something() 

... kompiluje do:

var req; 
req = $.get('foo.html').success(function(response) { 
    return do_something(); 
}).error(function(response) { 
    return do_something(); 
}); 

Wygląda mus is too short zasugerował to w komentarzu powyżej, jak również.