2011-10-08 71 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>'); 
    }); 
});