我遇到一个问题,当通过浏览器使用后退/前进按钮时,Turbolink会多次绑定事件。我有一个简单的脚本,以确保它不是我编写document.on()事件的方式,所以......
$(document).on 'page:load', ->
alert 'Loaded'
点击链接时会触发一次。单击向后或向前(或另一个Turbolink链接)它将触发两次。下次它会发射很多次而且会不断增长。这是我在jQuery和Turbolinks之外的清单文件中唯一拥有的东西。你如何防止Turbolinks重复事件绑定?
答案 0 :(得分:15)
这个问题似乎包括我身体末端的javascript_tag,而不是头部。在正文中,每个Turbolinks页面都会删除/添加Javascript:更改以便绑定不断堆积。
答案 1 :(得分:6)
这是有道理的 - 如果你使用jquery-turbolinks gem会发生同样的问题,因为它会导致你的jQuery文档就绪函数中的任何代码在每个页面加载时运行。由于文档对象永远不会使用Turbolinks重新初始化,因此会导致冗余绑定。这种情况的解决方案是将$(document).on绑定放在jQuery ready函数之外,这样就不会在每次页面加载时执行它们。
答案 2 :(得分:0)
我有同样的问题,基本上我所做的是查询是否在包含JS之前定义了变量。听起来有点凌乱......
答案 3 :(得分:0)
我遇到了同样的问题,问题是我在布局上生成的标记是不正确的。我在一个我不应该
的地方关闭body
标签