2017-08-01 74 views
0

我試圖讓通知出現,消失,然後在完成後從DOM中刪除它自己。刪除動畫後動態創建的內容

我曾嘗試以下:

var minibasketAlert = function (uid, desc) { 
    $('.minibasket-alerts').append($('<div class="minibasket-alert" id="'+uid+'-alert"><p>Adding '+desc+' to basket</p></div>')); 
    $('#' + uid + '-alert').fadeIn('fast').delay(2000).fadeOut('slow', function() { 
    $('#' + uid + '-alert').remove(); 
    }); 
}; 

這增加了該項目,以DOM和褪色,並走出然而,當它完成

它不會從DOM中刪除我自己也嘗試:

var minibasketAlert = function (uid, desc) { 
    $('.minibasket-alerts').append($('<div class="minibasket-alert" id="'+uid+'-alert"><p>Adding '+desc+' to basket</p></div>')); 
    $('#' + uid + '-alert').fadeIn('fast').delay(2000).fadeOut('slow', function() { 
    $(this).remove(); 
    }); 
}; 

這會在任何動畫效果發生之前從DOM中刪除新添加的元素。我可以看到父元素在檢查閃爍時,我在視口中運行功能,但沒有顯示

+0

正確的選擇,如果你刪除的回調函數之外的元素髮生了什麼? – JBO

+0

然後它會在動畫甚至有機會執行之前被刪除。即使元素未被動態添加,情況也是如此 https://jsfiddle.net/8zmbq39a/ – Richie

+0

@Richie remove函數在callabck函數中 – Nico

回答

0
var minibasketAlert = function (uid, desc) { 
    $('.minibasket-alerts').append($('<div class="minibasket-alert" id="'+uid+'-alert"><p>Adding '+desc+' to basket</p></div>')); 
    $('#' + uid + '-alert').fadeIn('fast').delay(2000).fadeOut('slow', function() { 
     $('#' + uid + '-alert').remove(); 
    }); 
}; 

當時兩個