我可以从coffeescript文件中调用Javascript函数吗?

我正在尝试从Coffeescript文件中调用javascript函数,对于我的$(document).ready()并且它永远不会被调用。

我要调用的函数来自我在html head元素中包含的外部源,就在我的coffeescript文件包含之前,如下所示:

   true %> 

在我的coffeescript文件(称为someControllerName.coffee)中我这样做:

 ready = -> ... call my method $ -> ready 

这是正确的方法吗? 我可以在Chrome中看到我的脚本已编译为javascript,我可以在检查器的“网络”标签中看到它。

我正在使用Rails 4,这是我的application.js

 //= require jquery //= require jquery.turbolinks //= require jquery_ujs //= require bootstrap //= require turbolinks //= require_tree . 

编辑:

如果我通过alert("...");替换我的方法调用alert("..."); 它工作,如果我在$(document).ready()使用javascript调用我的javascript方法,它工作正常。

EDIT2:

这是我真正的javascript函数:

 var ready = function () { $('pre code').each(function (i, e) { hljs.highlightBlock(e) }); }; $(document).ready(ready); 

我解决了这个问题:

 highlight = -> $("pre code").each (i, e) -> hljs.highlightBlock(e) $(document).on 'ready page:load', -> highlight() 

这不符合你的想法:

 $ -> ready 

在JavaScript中:

 $(function() { return ready; }); 

你的问题是,只是ready只是对函数的引用,它不像在Ruby中那样是函数调用。 您必须说ready()来调用该函数,调用括号的函数只有在您使用参数调用函数时才是可选的: fxf(x)相同但ff()不同。

我想你想说:

 $ -> ready() 

甚至:

 $ ready # same as $(ready)