起初,所有的javascript綁定都運行得很好。Rails 4 + Turbolinks + JQuery Turbolinks + Coffeescript:被多次觸發的事件
但是,從我導航到另一個頁面的那一刻起,任何事件都會被多次觸發。如果我刷新頁面,一切都恢復正常。
在jquery.turbolink文檔中,關於綁定$(function())塊內的文檔事件的there is an alert。然而,似乎默認情況下,coffescript是這樣工作的。所以我該怎麼做?
這是我的環境:
的Gemfile:
gem 'turbolinks'
gem 'jquery-turbolinks'
的application.js
//= require jquery
//= require jquery.turbolinks
//..app js
//= require turbolinks
application.html.erb
<html>
<head>
<meta charset="utf-8">
<title><%= t 'brand' %> </title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= yield :head %>
<%= csrf_meta_tags %>
<meta name="description" content="<%= yield :page_description %>">
<meta name="keywords" content="<%= yield :page_keywords %>">
</head>
controller.js.coffee
$(document).ready ->
$(document).on 'click', '.addition .label i', (e) ->
console.log ".addition .label i 'click' fired!"
事情是,很明顯,默認情況下,由coffeescript生成的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? 我應該做不同的配置嗎?
乾杯。