2016-02-14 63 views
2

我知道這個問題是毆打致死,但我嘗試了所有可能的方法,但似乎沒有任何工作對我來說。我試圖在點擊鏈接時添加一個簡單的警報。欣賞你的投入。Rails 4 coffeescript點擊不起作用

它所做的

查看部分:(我想火上標識的取消鏈接的點擊一些CoffeeScript的:「取消註釋)

<%= simple_form_for [@parent,@comment] do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
    <%= f.hidden_field :group_id, :value => @group_id %> 
    <%= f.input :body, placeholder: 'Reply', label: false %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit, 'Post Reply'%> 
    </div> 
    <%= link_to "Cancel", "#",id: "cancel-comment" %> 

<% end %> 

的CoffeeScript:資產/ comments.coffee :

$(document).on "page:change" , -> 
    $('#cancel-comment').click -> 
    alert "page has loaded!" 
    return false 

我也試過這樣:

$(document).on "page:change", -> 
    $('#cancel-comment').click(e) -> 
    e.preventDefault() 
    alert "page has loaded!" 

我也試過更換使用JavaScript的CoffeeScript如下但這似乎並沒有幫助過:

$(document).on("page:change", function() { 
    $('#cancel-comment').click(function(event) { 
     event.preventDefault(); 
     alert("page has loaded!"); 
    }); 
    }); 

的Gemfile:

gem 'jquery-turbolinks' 

資產/ application.js中

//= require jquery 
//= require jquery_ujs 
//= require jquery.turbolinks 
//= require twitter/bootstrap 
//= require turbolinks 
//= require_tree . 
+0

是否有一個具體的原因,你正在使用'「頁:改變」'?我只是將整個第一行(您的CoffeeScript文件)更改爲'jQuery - >'。這對我來說總是有效的。 –

+0

@mike嘗試'page:load'。 –

回答

3
$(document).on "click", "a#cancel-comment", (e)-> 
    e.preventDefault() 
    alert "page has loaded!" 

當我們將事件綁定到Turbolinks的元素時,我們從document委託並直接綁定到元素。

-

如果你使用Rails 5,你會發現,Turbolinks已經改變了event hooks