【问题标题】:jQuery plugins / functions not loading after rails 3.1 upgraderails 3.1升级后jQuery插件/函数未加载
【发布时间】:2012-04-17 21:56:11
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

  • 哦,痛苦!我最近(6 个月前)将两个大型 2.3.8 应用程序升级到 3.[1|2]。我记得同样的问题。我希望我能记住我所经历的所有细节,但我不记得(我太老了!)。我记得有一次,出于沮丧,我预编译了开发中的资产。我只记得这是打破日志堵塞的关键,它以某种方式揭示了最终的答案,(对于我的很多具体案例)。似乎反直觉!希望我能提供更多帮助!祝你好运!

标签: ruby-on-rails jquery-plugins ruby-on-rails-3.1


【解决方案1】:

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

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

//call it as:
this.some_function_name()

【讨论】:

  • 这并不能真正解决我的其他插件已经编写并通常被缩小的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 2014-02-15
  • 2018-04-08
相关资源
最近更新 更多