2017-06-17 40 views
1

工作,所以我有这个代码块:的Javascript不是在页面刷新

$(document).ready(function() { 
    planSelectionForm.init($("form#new_account")); 
}); 

当我和网页链接它按预期工作。但是,当我从浏览器刷新它不会被触发。这似乎是一个常见问题。只是为了记录我正在使用turbolinks。任何有关为什么会发生这种情况的帮助会很棒!

+0

你确定它不会被触发?在你的文档里添加一个'console.log('triggered');'就可以了。我猜测每次都会出现,但是它可能取决于脚本的位置,载入jQuery的位置等。 –

+1

[Turbolinks加载事件可能与页面刷新无关](https:// stackoverflow。 COM /问题/ 41421496/turbolinks负载事件 - 不工作,上有页面刷新) – gaetanoM

回答

2

得到这个问题后,我能找到的唯一解决办法是我的包裹脚本:

document.addEventListener("turbolinks:load", function() { 
    planSelectionForm.init($("form#new_account")); 
}); 
2

将.onready()函数包装到一个名为initialize的函数中。重点是分离事件驱动函数调用,以便事件驱动函数调用调用全局函数。

在那里,添加到您的身体或其他支持onload的元素。

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

<body onload="initialize(); return;"> </body> 

而且,迦勒,在我的experiance,我相信jQuery的ready事件上得到任何新的负载,或Ctrl + F5缓存重新加载执行。