js 不适用于 ajax 出现在 Rails 中的元素

js not available for ajax appeared elements in Rails

例如,我有一个与 ajax 请求一起出现的表单字段,它有 class can_be_deleted.

<div class="form-group">
  <%= f.text_field :name %>
  <%= f.hidden_field :_destroy %>
  <span class="fa fa-close can_be_deleted"></span>
</div>

同时我有一些已经存在的元素随着页面加载出现,它们还有 class can_be_deleted.

<div class="form-group article_tag">
  <%= f.object.name %>
  <%= f.hidden_field :slug %>
  <%= f.hidden_field :name %>
  <%= f.hidden_field :_destroy %>
  <span class="fa fa-close can_be_deleted"></span>
</div>

按下具有此 class 的元素时绑定的 coffescript,适用于 ajax 创建的所有元素除外。

jQuery ($) ->
  $(document).on "turbolinks:load", ->    
    $(".can_be_deleted").click ->
      console.log("clicked")

如何让它适用于所有元素?奇怪的情况。

您可以使用 ajaxComplete 事件,试试这个:

$(document).on "turbolinks:load ajaxComplete", ->   

改为:

$(document).on "turbolinks:load", ->