我有一个关于在rails 4布局中绑定javascript事件监听器的问题。基本上我在整个脚本(https://gist.github.com/dsulli99/5d8309046e5ec1ae55dd)内嵌,至少是为了让事情运行起来。
整个脚本正在我的布局的<body>
标记内,我在我的应用程序中为每个页面使用相同的布局。
我的问题是这个;看来,当我点击链接以使用相同的布局渲染任何其他视图时,实际上并不执行。它只会在以下情况下执行:
1)第一次呈现使用该布局的视图或 2)如果我实际上点击了我的broswer上的'reload'。
我希望由于这是整个脚本在每次加载页面时执行的主体的一部分(即如果我点击使用link_to构建的链接)。是否有人能够告诉我为什么布局本身内嵌的javascript不会加载实现特定布局的每个页面?感谢您抽出宝贵时间帮助我。
谢谢,
丹
答案 0 :(得分:1)
除非您已将其删除,否则默认的Rails 4 Gemfile包含Turbolinks。它是一个JS库,它拦截GET请求并将<body>
替换为XHR的结果到GET请求的位置。这意味着第一个页面之后的任何页面都有no window.onload
event。
您的代码依赖于window.onload
,但它永远不会到来。同样收听page:load
,这是Turbolinks在加载后发生的事件。