Rails布局中的事件侦听器

Event Listener in Rails Layout?

本文关键字:事件 侦听器 布局 Rails      更新时间:2023-09-26

我有一个关于在rails 4布局中绑定javascript事件侦听器的问题。基本上我是在衬整个剧本(https://gist.github.com/dsulli99/5d8309046e5ec1ae55dd),至少是为了让事情运转起来。

整个脚本就在我布局的<body>标记内,我对应用程序中的每个页面都使用相同的布局。

我的问题是:;当我单击链接以使用相同布局渲染任何其他视图时,似乎并没有实际执行。只有在以下情况下才会执行:

1) 首次渲染使用该布局的视图或2) 如果我真的在我的broswer上点击"重新加载"。

我希望,由于这是整个脚本在每次页面加载时执行的主体的一部分(即,如果我单击使用link_to构建的链接)。有人能告诉我为什么布局中的javascript本身没有加载到实现该特定布局的每个页面中吗?我很感激你抽出时间来帮助我。

谢谢你,

Dan

除非您删除了它,否则默认的Rails4Gemfile包括Turbolinks。它是一个JS库,用于截获GET请求,并将<body>替换为GET请求所在位置的XHR结果。这意味着在第一个事件之后的任何页面都没有window.onload事件。

您的代码依赖于window.onload,但它永远不会出现。同时收听page:load,它是Turbolinks在加载后触发的事件。