除非刷新,否则 JavaScript 不会加载

标签 javascript html ruby-on-rails

我在 $(document).ready() 中有一些 jquery,但是除非刷新页面,否则此 jquery 代码不会在我的页面上运行。然后它会在每次后续刷新时起作用。为什么会这样?

我只是放入了 javascript 和 html 标签,但我正在 Rails 应用程序中工作,不确定这是否会让事情变得复杂。

最佳答案

根据您的 Turbolinks 版本,您必须使用正确的语法来覆盖文档加载事件。对于 Turbolinks 5:

而不是

$(document). ready(function () {
....
})

使用

var documentready = function(){

}
$(document). on('turbolinks:load',  documentready); 

刷新时,这将优雅地回退到文档就绪事件。

为什么这是必要的?

Turbolinks 绑定(bind)位置更改(如单击链接)并使用 Ajax 加载部分内容。该文档未加载。此外,它还操纵浏览器的历史记录来记录访问。

因此, Assets 不会在每次访问时加载。快速地。这就是为什么文档就绪不会绑定(bind)到所有事件,除非所有监听器都以正文或文档为目标(例如 $("body").on("click","selector",function()... 而不是 $("selector").on('click', function()...

关于除非刷新,否则 JavaScript 不会加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38704030/

相关文章:

javascript - 如何摆脱 v-on 处理程序 : "TypeError: _vm.myFcn is not a function"? 中的错误

javascript - 在javascript settimeout中依次调用两个函数

javascript - Shopify API : Get url that leads directly to checkout

jquery - 显示/隐藏多个 div 而不使用数值

ruby-on-rails - rails 如何正确回滚某些迁移

ruby-on-rails - 如何覆盖 rails new/edit 表单上的标题

ruby-on-rails - Rails + CanCan : User should be able to delete own photo, 但不能

javascript - 无法使用 JQuery 使 ASP.NET 控制按钮淡出

javascript - TypeError : text. select 不是一个函数

html - position absolute top 0px 和 right 0px 怎么可能不起作用?