Ruby on Rails 4 javascript未执行

Posted

技术标签:

【中文标题】Ruby on Rails 4 javascript未执行【英文标题】:Ruby on Rails 4 javascript not executed 【发布时间】:2014-05-13 17:57:23 【问题描述】:

我在app/assets/javascripts 中有一个自定义的js 文件。 这是js文件:

//app/assets/javascripts/contacts.js
//$(document).ready(function()  //I've already tried with this method

$(window).load(function() 
    alert("foo bar")
);

我需要application.js 文件中的contacts.js 文件。

如果我检查 html 页面,我会看到正确加载的 js 文件,但未显示消息。 如果我重新加载页面(按 f5),则消息正确显示。

当页面加载时,javascript 被加载(我可以在浏览器的源 html 代码中看到它)但没有执行。

你能帮帮我吗?

解决方案: Rails 4: how to use $(document).ready() with turbo-links

【问题讨论】:

是的,我正在使用turbo-links 阅读this Rails 4: how to use $(document).ready() with turbo-links的可能重复 好的。你的链接对我有用。解决了。​​ 在rails 5中,你可以简单地说$(document).on('turbolinks:load', function() ... ); 【参考方案1】:
$(document).ready(function()   # Not working with turbo-links

From

Turbolinks 覆盖正常的页面加载过程,事件 这依靠不会被解雇。如果您的代码看起来像 这个,你必须改变你的代码来做到这一点:

$(document).on('ready page:load', function () 
  // you code here
);

Another question

【讨论】:

【参考方案2】:

使用 Turbolinks 版本 5(从 Rails 5 开始),您需要使用:

$(document).on("turbolinks:load", function () 
  // YOUR CODE
);

【讨论】:

以上是关于Ruby on Rails 4 javascript未执行的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails - 在 OSX 上使用 Ruby 2.4.4 而不是 rails 5.1.6 的配置问题/异常

如何在 ruby​​ on rails 4 中创建高级搜索

ruby on rails升级资产预编译失败

思考Ruby On Rails的底层代码(Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門)

ruby 使用Devise gem验证您的API,使用标头标记。 Ruby on Rails 4.阅读评论。

ruby on rails 4 - 捆绑安装grape-jbuilder