jQuery删除最接近的页面加载后不添加到DOM的元素

时间:2015-06-16 01:47:51

标签: jquery html ruby-on-rails

我有以下Rails循环,其中列出了所有.months { display: none; }

   $(".year").hover(function () {
    $(".months").slideToggle("slow");
});

我使用以下jQuery向DOM添加新的输入字段:

@team.authority_emails

我使用以下jQuery删除任何现有或新创建的输入:

<% if @team.nil? %>
  <% @team.authority_emails.collect.each_with_index do |a_e, index| %>
    <div class="row">
      <div class="large-11 columns">
        <input type="text" value="<%= a_e %>" name="authorities[]" class="authority-email">
      </div>
      <div class="large-1 columns">
        <a href="#" class="remove"><%= icon('fa fa-remove') %></a>
      </div>
    </div>
  <% end %>
<% end %>

当删除Rails循环创建的输入时,上述方法正常工作。但是,当我尝试删除jQuery创建的输入时,页面会跳转并且输入消失。当我去添加另一个输入时,我得到两个新输入而不是一个。然后我点击删除,两者都消失了。当我添加另一个时,我得到三个输入,依此类推。是什么导致了这个问题?

1 个答案:

答案 0 :(得分:0)

您需要使用事件委派jquery .on()

$(document).on('click', '.remove', function() {

   $(this).closest('.row').remove();
   return false;

});