2013-06-15 2 views
0

Привет, у меня есть следующий код JQuery, который удалит последний элемент в контейнере. Проблема заключается в том, что мой remove анимирован, и этот метод будет, например, называться 10 раз подряд, тогда будет удалено только 2 или 3 элемента, потому что следующая стена поймает объект, который уже удален, но в настоящее время выцветание.JQuery Удалить последний элемент, несколько вызовов

 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(); 
     }); 
    } 
+1

'вар последний = self.options.FollowsContainer.children (': нет (: анимированный)') последнего()' – adeneo

+0

Не клеится понять –

+0

@. adeneo вы решили работать, можете ли вы добавить anwser, чтобы я мог его принять? – Androme

ответ

1

с помощью селектора JQuery :animated

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

Он получает последний не анимированный ребенка и исчезать его

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--; 
    }); 
}); 
Смежные вопросы