也有类似的问题,但它们都似乎是由身体中的JavaScript标记引起的,在我的情况下,我的头部是。我也不能移动页面换页块外的我的js(我认为我至少不能)rails 4 turbolinks多个绑定
我遵循rails约定,让每个文件中的所有js根据资源并将它们包含在应用程序中。 JS。
我的JS在我的布局文件的头部:
<!DOCTYPE html>
<html>
<head>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
我的文件都遵循轨道文档中的建议,使用页面更改事件:http://guides.rubyonrails.org/working_with_javascript_in_rails.html#turbolinks
下面是一个例子js文件( report.js - 我用咖啡脚本)
load_reports = ->
table = $('#reports').DataTable()
company_input_field = $('#rc-cn-st-input')
company_input_field.on 'keyup change', ->
table.column(2).search(@value).draw()
return
$(document).on('page:change', load_reports)
这一切的伟大工程,直到我用浏览器的后退按钮。一旦我这样做了,每次点击都会触发2次事件。我该如何解决这个问题,遵循什么规定?
在其他情况下,我提出我的js的页面变化外块,做:
$(document).on 'click', 'td.details-control', ->
# do something
但是,这似乎并没有在上述情况中的实际,我引用了jQuery数据表仅在一个页面上,并且只有当我在该页面上时才需要进行设置。
我看过.off()函数,但无法弄清楚如何在这种情况下使用它,我试过的所有东西似乎都是删除活动侦听器或失败。