我希望在删除之后在课程的最后一个孩子中添加附加链接:{('.' + 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 :(得分: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];
答案 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>');
});
});