单独追加使用相同的删除方法不起作用

时间:2014-02-23 00:34:52

标签: javascript jquery html appendchild removechild

所以基本上我在一个表中添加了两个不同的thinds,在第一个表中使用相同的.parent()。parent()。remove()mehtod,在第二个表中没有。

有什么想法吗?

这是代码。 http://jsfiddle.net/rzmA4/

 $(document).ready(function(){
      $('#adauga_model').on('click', function(){
           $('#modele_adaugate').append('<tr><td><input type="file" name="model[]"></td><td><button class="remove" type="button">Remove</button></td></tr>');
      });
      $('#adauga_design').on('click', function(){
           $('#designuri_adaugate').append('<tr><td><input type="file" name="design[]"></td><td><button class="remove" type="button">Remove2</button></td></tr>');
      });
      $("td").on('click', '.remove', function() {
           $(this).parent().parent().remove();
           return false;
      });
 });

1 个答案:

答案 0 :(得分:3)

有趣的是,它完全适用于第一个,但是当文档加载时,您正在为所有TD元素添加一个事件监听器。但是,您正在创建新的,没有事件侦听器。

我重写了脚本如下解决问题:

 $("body").on('click', 'td .remove', function() {
      $(this).closest("tr").remove();
      return false;
 });

作为奖励:使用closest("tr")比执行parent().parent()更好。当您执行后者并且稍后更改设计时,您可能会遇到错误。