私の Rails アプリには、単純な古い JS がいくつかあります。
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
しかし、私は彼らが何について話しているのか分かりません。私は global=this を使用したことがなく、それが何をするのか、なぜ使用したいのかわかりません。
私もこれを読みました:http://elegantcode.com/2011/06/30/exploring-coffeescript-part-2-variables-and-functions/
これだけでなく: http://www.informit.com/articles/article.aspx?p=1834699
CoffeeScript がグローバル変数から私を保護し、コードを改善していることはわかっていますが、関数の呼び出し方法についての説明が見つかりません。
私は CoffeeScript Web サイトで遊んで、cube 関数で遊んだので、私が思う関数名を呼び出すことができるはずです。
私の知識にギャップがあるため、質問をしています。そのギャップを埋める助けがあれば大歓迎です。