Tại sao không thể xóa phần tử trong phần gọi lại của $.fadeout
?fadeout và loại bỏ một phần tử sau một vài giây
Ví dụ,
$(".background-blackout").fadeOut('slow', function(){
// Remove all the layer.
$(this).remove();
}));
alert($('.background-blackout').length);
// return 1
này hoạt động mà không gọi lại,
$(".background-blackout").fadeOut('slow', function(){
}).remove();
alert($('.background-blackout').length);
// return 0.
Nhưng nó loại bỏ yếu tố trước khi nguyên tố này đã hoàn toàn nhạt nhòa dần. Vì vậy, tôi nghĩ rằng tôi nên gọi remove()
sau một vài giây?
Vậy làm cách nào tôi có thể thực hiện điều đó với remove()
?
tôi đã cố gắng với điều này nhưng lớp sẽ không được gỡ bỏ,
$(".background-blackout").fadeOut('slow', function(){
});
setTimeout(function(){
$(".background-blackout").remove();
},2000);
alert($('.background-blackout').length);
// returns 1.
Bạn có cơ hội nhận thấy rằng 'alert()' của bạn xảy ra trước khi 'fadeOut' hoàn thành? ;) – RightSaidFred