在通过浏览器使用后退/前进按钮时,Turbolinks将多次绑定事件,我遇到了一个问题。我有一个简单的脚本来确保这不是我写document.on()事件的方式,所以.
$(document).on 'page:load', ->
alert 'Loaded'单击链接时将触发一次。点击后或向前(或另一个Turbolink链接),它将触发两次。下一次它会发射很多次,而且还会继续增长。这是我在jQuery和Turbolinks之外的清单文件中唯一拥有的东西。如何防止Turbolinks复制事件绑定?
发布于 2013-09-28 04:10:40
问题似乎包括我身体末端的javascript_tag,而不是头部。在正文中,Javascript被删除/添加到每个Turbolinks页面:change,这样绑定就会不断增加。
发布于 2013-10-21 16:31:27
这是有道理的--如果您使用gem,也会出现同样的问题,因为它将导致jQuery文档就绪函数中的任何代码在每次页面加载时运行。因为文档对象从未用Turbolinks重新初始化,这会导致冗余绑定。这种情况的解决方案是将$(document).on绑定置于jQuery就绪函数之外,这样就不会在每次加载页面时执行它们。
发布于 2014-02-11 23:23:39
我也遇到了同样的问题,基本上,我所做的就是在包含JS之前,查询是否定义了一个变量。听起来有点混乱..。
https://stackoverflow.com/questions/19061417
复制相似问题