2012-06-25 30 views
7

Tôi đang cố gắng này trong coffeescript:Coffeescript và jQuery chaining

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

Tôi đang cố gắng để tìm ra một cách để tận dụng indents để một cái gì đó như sau sẽ trả lại những gì về:

$ element 
    .mousedown aFunction 
    .mouseup anotherFunction 

Nhưng vô ích, có bất kỳ đề xuất nào về chuỗi trong coffeescript không?

+2

có thể trùng lặp của [Coffeescript - Chaining phương pháp với đối số chức năng] (http://stackoverflow.com/questions/5144191/coffeescript-method-chaining-with-function-arguments) –

Trả lời

12

tôi chắc chắn rằng bạn không muốn sử dụng dấu ngoặc đơn, nhưng ...

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

Biên dịch để

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

Tôi nghĩ rằng đây là giải pháp chính xác tại thời điểm, mặc dù vấn đề này [có] (https://github.com/jashkenas/coffee-script/issues/1495) [được] (https://github.com/jashkenas/coffee-script/issues/1407) [ lớn lên] (https://github.com/jashkenas/coffee-script/issues/1889) [nhiều] (https://github.com/jashkenas/coffee-script/issues/944) [lần] (https://github.com/jashkenas/coffee-script/issues/2114) tại [CoffeeScript's GitHub] (https://github.com/jashkenas/coffee-script), do đó, một số hỗ trợ cho loại lồng này có thể đến trong tương lai = D – epidemian

1

Đối với tất cả các độc giả nhanh chóng khác trên mạng, đây là câu trả lời được cập nhật bởi a paid nerd được cung cấp here.

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

... biên dịch để:

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

Hình như mus is too short đề nghị nó trong một chú thích ở trên là tốt.