2012-06-25 2 views
7

Я пытаюсь это в CoffeeScript:CoffeeScript и JQuery цепочки

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

Я пытаюсь выработать способ сделать использование отступов, так что-то вроде следующего будет возвращать то, что о:

$ element 
    .mousedown aFunction 
    .mouseup anotherFunction 

Но безрезультатно, есть ли рекомендации по цепочке в coffeescript?

+2

Возможный дубликат [Coffeescript - Цепочка метода с аргументами функции] (http://stackoverflow.com/questions/5144191/coffeescript-method-chaining-with-function-arguments) –

ответ

12

Я уверен, что вы не хотите использовать круглые скобки, но ...

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

компилирует

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

Я думаю, что это правильное решение на хотя этот вопрос [имеет] (https://github.com/jashkenas/coffee-script/issues/1495) [был] (https://github.com/jashkenas/coffee-script/issues/1407) [ поднято] (https://github.com/jashkenas/coffee-script/issues/1889) [много] (https://github.com/jashkenas/coffee-script/issues/944) [раз] (https://github.com/jashkenas/coffee-script/issues/2114) в [CoffeeScript GitHub] (https://github.com/jashkenas/coffee-script), поэтому некоторая поддержка такого рода вложенности может появиться в будущем = D – epidemian

1

Для всех других быстрых читателей там, вот обновленный ответ по a paid nerdhere.

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

... компилирует:

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

Похоже mus is too short предложил это в комментарии выше, а также.

Смежные вопросы