1

所以我最近刚刚将一个大型项目升级到 Rails 3.1。我已经建立了资产管道并开始工作。然而,我们使用的许多插件和我们编写的自定义 jQuery 函数似乎都没有得到评估,尽管源代码在 application.js 中。例如:

   (function($) {
     $.fn.searchable = function() {
        ....
     }
   })( jQuery );

我在 application.js 中看到了这段代码,但是任何试图使用它的东西都会得到一个 javascript 错误,未定义的函数。但是,如果我将整个内容包装在一个函数定义中,并在准备好文档时调用该函数,那么它就可以工作。

这是一个非常丑陋的解决方法。有什么想法为什么不包装在函数中就不能工作?

谢谢。

4

1 回答 1

0

也许你应该看看'coffeescript's namescope'。例如

//define your js function as: 
this.some_function_name()  => 
  alert('hello~')

//call it as:
this.some_function_name()
于 2012-04-17T22:24:55.387 回答