在我的Rails應用程序我有一些普通的老JS:調用一個純JS功能一旦轉爲CoffeeScript的
function reorder(divid,url) {
jQuery(divid).sortable({
axis: 'y',
dropOnEmpty: false,
handle: '.drag',
cursor: 'crosshair',
items: 'li',
opacity: 0.4,
scroll: true,
update: function(){
jQuery.ajax({
type: 'post',
data: jQuery(divid).sortable('serialize'),
dataType: 'script',
url: url)
}
});
}
和它的作品時,我打電話:
reorder("#pages","<%= changeorder_pages_path %>");
所以我決定把我的功能的CoffeeScript這給了我這樣的:
(function() {
var reorder;
reorder = function(divid, url) {
return jQuery("#pages").sortable({
axis: "y",
dropOnEmpty: false,
handle: ".drag",
cursor: "crosshair",
items: "li",
opacity: 0.4,
scroll: true,
update: function() {
return jQuery.ajax({
type: "post",
data: jQuery("#pages").sortable("serialize"),
dataType: "script",
complete: function(request) {
return jQuery("#pGESs").effect("highlight");
},
url: "/pages/changeorder"
});
}
});
};
}).call(this);
,但我的電話不工作了 - 我得到了Firebug的錯誤:
reorder is not defined
所以對我的問題 - 我現在怎麼調用函數它是CoffeeScripted?
我已閱讀本:Calling a function by its name
但我不知道他們在說什麼。我從來沒有使用全球=這個,並不知道它做什麼或爲什麼我想要使用它。
我讀這還有:http://elegantcode.com/2011/06/30/exploring-coffeescript-part-2-variables-and-functions/
除了這一點:http://www.informit.com/articles/article.aspx?p=1834699
我認識到,CoffeeScript的是保護我從全局變量,使我的代碼更好 - 但我不能找到一個解釋如何調用函數。
我玩過CoffeeScript網站,玩過立方體功能 - 所以我應該只能調用我認爲的函數名稱。
我在問這個問題,因爲我的知識存在差距 - 任何填補這個空白的幫助都將非常感激。
您的CoffeeScript完全不像CoffeeScript。 – 2012-07-11 10:21:21
沒有編譯錯誤,因爲它應該是現在縮進,它現在可以在遵循以下建議之後工作... – 2012-07-11 11:58:54
但是,您包含的代碼不是coffeescript,而是由CoffeeScript編譯器生成的代碼 – 2012-07-11 12:03:32