轨道 4 咖啡脚本点击不起作用

Rails 4 coffeescript click not working

本文关键字:不起作用 脚本 咖啡 轨道      更新时间:2023-09-26

我知道这个问题在 SO 上被打死了,但我尝试了所有可能的方法,但似乎没有什么对我有用。我正在尝试在单击链接时添加一个简单的警报。感谢您对此的意见。

它所做的一切

查看部分:(我想在单击带有 id 的取消链接时触发一些咖啡脚本:"取消-评论(

<%= 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: assets/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!");
    });
  });

宝石文件:

gem 'jquery-turbolinks'

资产/应用程序.js

//= require jquery
//= require jquery_ujs
//= require jquery.turbolinks
//= require twitter/bootstrap
//= require turbolinks
//= require_tree .
$(document).on "click", "a#cancel-comment", (e)->
  e.preventDefault()
  alert "page has loaded!"

每当我们使用 Turbolinks 将事件绑定到元素时,我们都会从document委托并直接绑定到元素。

--

如果你使用的是 Rails 5,你会发现 Turbolinks 已经改变了它的事件钩子。