【问题标题】:Ruby on Rails 4 javascript not executedRuby on Rails 4 javascript未执行
【发布时间】: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

【问题讨论】:

标签: javascript ruby-on-rails ruby ruby-on-rails-4 asset-pipeline


【解决方案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
    });
    

    【讨论】: