cro*_*don 2 ruby-on-rails turbolinks
根据Turbolinks 自述文件,我们不应该在使用时直接在页面元素上设置事件监听器turbolinks:load:
如果可能,请避免使用turbolinks:load事件将事件侦听器直接添加到页面主体上的元素.相反,请考虑使用事件委派在文档或窗口上注册一次事件侦听器.
既然如此,有时你需要在个人元素上设置监听器.建议的方法是什么?使用不同的Turbolinks活动?别的什么?
如果事件由用户触发(点击,键盘等),那么您可以简单地使用
$(document).on('click', '#id', function(e) {......
Run Code Online (Sandbox Code Playgroud)
它工作正常,因为它绑定到文档而不是可以更改或删除的类/ ID.尽可能使用它.
如果您在页面加载时需要一些东西,那么您必须使用turbolinks:load如下所示.你需要这个,因为使用turbolinks你不会做真正的整页重新加载,但你必须以某种方式告诉浏览器,你已经在不同的页面上.
$(document).on('turbolinks:load', function() {
$('.class').geocomplete();
});
Run Code Online (Sandbox Code Playgroud)