繁体   English   中英

没有在Rails 5中使用Turbolink刷新页面,Javascript就无法运行

[英]Javascript doesn't run without page refresh using turbolinks in Rails 5

我在这里看到了关于此问题的几篇文章以及博客文章。 到目前为止,它们都没有对我有所帮助,例如: 相同的rails和turbolink版本

这是一个不刷新页面就不会加载的js示例:

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

没有Turbolinks的情况下,JavaScript可以正常运行,而删除Turbolinks对我来说不是一个解决方案。

注意:如果我需要来自application.html.erb的特定JS文件,它确实可以工作,但随后它将在网站的所有页面上运行每个文件,并且JS必须是特定于页面的。

您应该将其用于Turbolink。

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

但这是很糟糕的,因为在某些页面上您想要使用涡轮链接,而在其他页面上则不需要。 很快,您将仅通过文档就绪(因为无法等待页面加载)以及其他通过page:load初始化脚本。 因此最好防止这种“意外行为”:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM