【问题标题】:Rails 4 coffeescript click not workingRails 4咖啡脚本点击不起作用
【发布时间】:2016-02-14 01:35:26
【问题描述】:

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

它所做的一切

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

<%= 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/cmets.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'

assets/application.js

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

【问题讨论】:

  • 您使用"page:change" 是否有特定原因?我只需将整个第一行(您的 CoffeeScript 文件)更改为 jQuery -&gt;。这总是对我有用。
  • @mike 试试page:load

标签: javascript jquery ruby-on-rails coffeescript


【解决方案1】:
$(document).on "click", "a#cancel-comment", (e)->
  e.preventDefault()
  alert "page has loaded!"

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

--

如果您使用的是 Rails 5,您会发现 Turbolinks 已更改为 event hooks

【讨论】:

    猜你喜欢
    • 2015-08-03
    • 1970-01-01
    • 2016-01-08
    • 2016-03-06
    • 2014-05-22
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    相关资源
    最近更新 更多