所以我最近刚刚将一个大型项目升级到rails 3.1。我已经建立并运行了资产管道。但是,我们使用的很多插件和我们编写的自定义jQuery函数似乎都没有得到评估,尽管源代码在application.js中。例如:
(function($) {
$.fn.searchable = function() {
....
}
})( jQuery );
我在application.js中看到了这段代码,但是任何试图使用它的东西都会出现javascript错误,未定义的函数。但是,如果我将整个事物包装在一个函数定义中,并在文档就绪上调用该函数,那么它就可以工作。
这是一个非常难看的解决方法。任何想法为什么没有包装在一个函数中它不工作?
感谢。
答案 0 :(得分:0)
也许你应该看一下'coffeescript's namescope'。 e.g。
//define your js function as:
this.some_function_name() =>
alert('hello~')
//call it as:
this.some_function_name()