0

您好,我有以下 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();
        });
    }
4

2 回答 2

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--;
    });
});
于 2013-06-15T12:57:22.803 回答
1

使用 jQuery 选择器:animated

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

它获取最后一个没有动画的孩子并将其淡出

于 2013-06-15T13:01:51.873 回答