在Rails应用程序中,我有一个coffeescript函数,应该在DOM加载后运行
$(document).ready ->
# do some stuff
过去我可以通过编辑如下来确保这些功能在Turbolinks页面刷新中也能正常工作
$(document).on 'ready page:change', ->
# do some stuff
我刚刚升级到Rails 5和Turbolinks 5,这些功能不再被正确调用。
经过多次搜索,我尝试了很多变化,包括
$(document).on 'ready', ->
$(document).ready ->
$(document).on "turbolinks:load", ->
$(document).on "page:load", ->
$(document).on "page:change", ->
# and as suggested by the [Turbolinks readme][1]
document.addEventListener 'turbolinks:load', ->
我在安装了jquery.tubolinks时也尝试了这些,并且使用了turbolinks兼容性补丁建议here。
我一定错过了一些明显的东西!在为页面加载和Turbolink加载加载DOM之后,确保函数运行的正确语法是什么?
答案 0 :(得分:3)
根据official turbolinks github documentation:
在许多情况下,您只需调整代码即可收听turbolinks:load事件,该事件会在初始页面加载时触发一次,并在每次Turbolinks访问后再次触发。
所以它希望这是纯粹的js:
document.addEventListener("turbolinks:load", function() {
// ...
})
或者像coffeescript中那样:
$(document).on 'turbolinks:load', ->
# ...
return