JQuery删除最后一个元素,多次调用

时间:2013-06-15 12:41:02

标签: javascript jquery

您好我有以下JQuery代码将删除容器中的最后一个元素。问题是我的移除是动画的,例如这个方法将连续调用10次,然后只删除2或3个元素,因为下一个墙将捕获已经被移除的对象,但是当前淡出。

        var last = self.options.FollowsContainer.children().last();
        self.usersInFollowsList--;
        if (last != null) {
            last.fadeOut(function () {
                $(this).remove();
            });
        }

我尝试了以下内容,但它无效

    var last = self.options.FollowsContainer.find(":not(.removing):last");
    self.usersInFollowsList--;
    if (last != null) {
        last.addClass("removing");
        last.fadeOut(function () {
            $(this).remove();
        });
    }

2 个答案:

答案 0 :(得分:1)

这是我的解决方案,经过修改后很容易适应jsfiddle:http://jsfiddle.net/Lb9qA/

var numBeingRemoved = 0;
$("#remove").on("click", function () {
    numBeingRemoved++;
    $("#foos").children(":nth-last-child(" + numBeingRemoved + ")").fadeOut(function () {
        this.remove();
        numBeingRemoved--;
    });
});

答案 1 :(得分:1)

使用jQuery选择器:animated

self.options.FollowsContainer.children(":not(:animated):last").fadeOut(function () {
    this.remove();
});

它得到了最后一个没有动画的孩子并淡出它