2009-02-04 6 views
39

Я хочу удалить элемент DOM сразу после исчезновения. То, что я сделал до сих порJQuery удалить элемент DOM после исчезновения

$(element).click(function() 
{ 
    $(this).fadeOut(500, function() { $().remove(this); }); 
}); 

Но теперь я всегда получаю эту ошибку в Firebug: http://dl.getdropbox.com/u/5912/Jing/2009-02-04_1109.png

Я предполагаю, что это происходит потому, что функция FADEOUT не действительно сделана, когда обратный вызов вызывается. И я не могу поместить часть $.remove() после вызова fadeOut, потому что в противном случае он будет удален сразу.

Знаете ли вы, что я могу сделать это лучше?

ответ

108

Вы используете функцию remove() неправильно.

$(element).click(function() { 
    $(this).fadeOut(500, function() { $(this).remove(); }); 
}); 
+1

хорошее решение !! мой голос + – imdadhusen

2

Почему беспорядок здесь просто используется $ ('# anydiv'). Remove();

+2

Я предполагаю, что он хочет затухать первым и удалить элемент после завершения затухания. – user3142695