2011-10-08 75 views
0

删除后,我想追加链接添加到类(('.' + change_class + ':last .adda .mediumCell:first'))的最后一个孩子,但是如果您删除最后一个孩子(44444444444444444444),它不会追加在最后一个孩子的平均值3333333333333333333和同一行中删除,如何解决它?从我的代码删除最后一个孩子后添加链接

实施例:http://jsfiddle.net/LX49c/1/

$('.remove').live('click',function (e) { 
    e.preventDefault(); 

    var change_class = $(this).closest('.find_input').find('div').attr('class').split(" ")[0]; 
    var url = $(this).closest('.find_input').find('div').attr('class').split(" ")[1]; 
    var get_class = $(this).closest('.' + change_class).attr('id'); 
      $('#' + get_class).fadeOut('slow', function() { 
       $(this).remove(); 
      }); 
      $('.' + change_class + ':last .adda .mediumCell:first').append('<a href="" class="add_input">add</a>'); 
}); 
+0

最好是添加列表后的“添加链接” 。这很容易,但这只是我的看法。 – Idered

回答

1

移动append(...).fadeOut函数内。见http://jsfiddle.net/LX49c/2/

$('.remove').live('click',function (e) { 
    e.preventDefault(); 

    var change_class = $(this).closest('.find_input').find('div').attr('class').split(" ")[0]; 
    var url = $(this).closest('.find_input').find('div').attr('class').split(" ")[1]; 
    var get_class = $(this).closest('.' + change_class).attr('id'); 
      $('#' + get_class).fadeOut('slow', function() { 
       $(this).remove(); 
       $('.' + change_class + ':last .adda .mediumCell:first').append('<a href="" class="add_input">add</a>'); 
      }); 
      //Moved from here 
}); 

另一种方法是追加前去除类:http://jsfiddle.net/LX49c/4/

.... 
var get_class = $(this).closest('.' + change_class).attr('id'); 
     $('#' + get_class).fadeOut('slow', function() { 
      $(this).remove(); 
     }); 
     $("#" + get_class).removeClass(change_class); 
     $('.' + change_class + ':last(-1) .adda .mediumCell:first').append('<a href="" class="add_input">add</a>'); 


你做得多昂贵的JQuery调用。我建议更换以下代码:

var change_class = $(this).closest('.find_input').find('div').attr('class').split(" ")[0]; 
var url = $(this).closest('.find_input').find('div').attr('class').split(" ")[1]; 
//Replace the previous by: 
var className = $(this).closest('.find_input').find('div').attr('class').split(" "); 
var change_class = className[0]; 
var url = className[1]; 
0

您在搬迁之前附加链接。您正在启动一个动画,它会在完成时移除该元素,但动画在您退出该功能之前不会启动。

如果你想删除后追加,你必须把这些代码在执行动画完成后,事件处理程序:

$('.remove').live('click',function (e) { 
    e.preventDefault(); 

    var change_class = $(this).closest('.find_input').find('div').attr('class').split(" ")[0]; 
    var url = $(this).closest('.find_input').find('div').attr('class').split(" ")[1]; 
    var get_class = $(this).closest('.' + change_class).attr('id'); 
    $('#' + get_class).fadeOut('slow', function() { 
    $(this).remove(); 
    $('.' + change_class + ':last .adda .mediumCell:first').append('<a href="" class="add_input">add</a>'); 
    }); 
}); 
相关问题