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应用程序中不起作用

导航栏中的下拉菜单在 Rails 6 中不起作用

Bootstrap隐藏模式在使用ajax的Rails 6中不起作用

select2 在带有支架的 rails 6 中不起作用

带有引导程序 3.3.4 的字形图标在 rails 4.2.1 中不起作用