使用Rails 5中的turbolinks,Javascript不会在没有页面刷新的情况下运行

时间:2017-04-26 11:53:12

标签: javascript ruby-on-rails turbolinks

我在这里看过几个关于这个问题的帖子,以及博客文章。 到目前为止,他们都没有帮助过我,例如: Same rails and turbolink version

以下是js的示例,如果没有刷新页面,则无法加载:

document.addEventListener('turbolinks:load', function() {
    document.getElementById(id[0]).oninput=function () {
        validate(id[0]);
    }
});

没有Turbolinks,Javascript运行正常,删除Turbolinks不适合我。

注意:如果我需要来自application.html.erb的特定JS文件,它会工作,但它会运行网站上所有页面上的每个文件,而JS必须是特定于页面的。

1 个答案:

答案 0 :(得分:0)

你应该将这个用于turbolinks。

$(document).on('page:load', ready);

但这非常糟糕,因为在某些页面上你想要使用turbolinks,而另一些你不想要。很快你就会通过文件准备就绪初始化脚本(因为你不能等待页面加载),以及其他通过页面:加载。所以最好只是防止这种“意外行为”:

= link_to "Page", some_path(@page), data: { turbolinks: 'false' }