jQuery准备在Rails 3中不起作用
Posted
技术标签:
【中文标题】jQuery准备在Rails 3中不起作用【英文标题】:jQuery ready not working in Rails 3 【发布时间】:2012-07-28 17:54:22 【问题描述】:上下文
我正在开发一个 Rails 3 应用程序并安装了“jquery-rails”gem,并且
//= require jquery
//= require jquery_ujs
//= require_tree .
在我的 app/assets/javascripts/application.js 文件中。
如果警报和咖啡脚本是基本级别的项目,则它们可以正常工作。
我已将它们直接放入 app/assets/javascripts/application.js 中,app/assets/javascripts/pages.js 并且在 app/assets/javascripts/ 中尝试将其作为咖啡脚本版本pages.js.coffee(只是改了文件名)
只要我把它们放在类似的地方:
$(document).ready(function()
alert('works');
);
或(对于咖啡脚本)
jQuery ->
alert "hi"
它根本不会触发。
我也尝试在应用程序布局中包含 jquery 文件,但同样的问题。
问题
在 Rails 中声明 jQuery 函数有不同的语法吗? 有谁知道可能出了什么问题?
感谢任何帮助。谢谢!
【问题讨论】:
你的js代码放哪里了? 我不太习惯在浏览器中查找 java 错误。它说“Modernizr 未定义”并链接到 Foundation.js:32 我正在使用来自 zurb 的 Foundation 框架。 刚刚将modernizr手动添加到我的javascript中,现在错误已经消失,仍在测试它是否解决了问题。 哇。就是这样。那让我发疯了。添加modernizr似乎已经解决了这个问题。谢谢斯佩兰斯基。 你应该看看这个帖子:***.com/questions/21219484/… 【参考方案1】:你拼错了函数:
// $(document).ready(funtion()
$(document).ready(function()
alert('works');
);
【讨论】:
发帖时打错字了,我的错。【参考方案2】:我认为咖啡脚本不起作用,因为它应该在具有适当扩展名的文件中。
【讨论】:
【参考方案3】:我需要检查 Speransky 提到的控制台日志,它正在调用modernizr,因为我手动添加了 Foundation 3 框架。它无法获得modernizr,因此不知何故扼杀了我的jQuery能力。
我将modernizr.js 下载到app/assets/javascripts,然后将其添加到树之前:
//= require jquery
//= require jquery_ujs
//= require modernizr
//= require_tree .
做到了。
【讨论】:
【参考方案4】:另一个常见错误:将 .coffee 更改为 .js 并忘记删除顶部 cmets。
【讨论】:
以上是关于jQuery准备在Rails 3中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥 jQuery 在我的 rails 5 应用程序中不起作用?
jquery ui datepicker在我的rails应用程序中不起作用