起初,所有javascript都运行良好.
但是,从我导航到另一个页面的那一刻起,任何事件都会被多次触发.如果我刷新页面,一切都恢复正常.
在jquery.turbolink文档中,有一个关于在$(function())块中绑定文档事件的警报.但是,默认情况下,coffescript似乎就像这样.所以我该怎么做?
这是我的环境:
的Gemfile:
gem 'turbolinks' gem 'jquery-turbolinks'
的application.js
//= require jquery //= require jquery.turbolinks //..app js //= require turbolinks
application.html.erb
<%= t 'brand' %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> <%= yield :head %> <%= csrf_meta_tags %>
controller.js.coffee
$(document).ready -> $(document).on 'click', '.addition .label i', (e) -> console.log ".addition .label i 'click' fired!"
问题是,显然coffeescript IS生成的javascript文件默认位于一个块内.看看这个:
controller.js(由coffeescript生成)
function() { $(document).ready(function() { $(document).on('click', '.addition .label i', function(e) { console.log(".addition .label i 'click' fired!"); }); ...
那么,我该怎么做才能正确使用coffeescript + JQuery Turbolinks?我应该进行不同的配置吗?
干杯.