2014-10-04 88 views
1

我有一個叫gainGold()append SA DIV元素的父這樣的功能:創建div元素自動自毀

function gainGold() { 
    $('#main').append('<div class="popup popup-gold">+ 14</div>'); 
} 

在完整版,數量當然是可變的,並有一些更多的對它,但我會保持這個簡單。這個元素在0.5秒內播放css動畫,並且我希望它在之後被銷燬。到目前爲止,我已經做了一個setTimeout這樣的:

setTimeout(function(){ 
    $('.popup-gold').remove(); 
}, 510); 

但是,這是不好的做法。有了這個解決方案,我不能同時看到多個popup元素,因爲jQuery選擇器在刪除時將所有元素都定位到目標。

有沒有什麼方法可以創建這個div元素並對它進行嚴格控制,以便單獨刪除()它?

編輯:This is a Jsfiddle that demonstrates the solution.我已經結束了使用Robs的答案,將每個附加元素聲明爲一個變量,並乾淨地刪除它。謝謝!

+0

;噸你有不同的IDS?在被調用時獲得金錢? – 2014-10-04 00:05:15

+0

你有沒有試過給每一個特定的ID?幾乎像櫃檯? – Bradley 2014-10-04 00:06:32

+0

如果可能,可以發佈'css''動畫'嗎?謝謝 – guest271314 2014-10-04 01:00:54

回答

3

你應該保存到你的附加去除對象的引用前...

function gainGold() { 
    var popup = $('<div class="popup popup-gold">+ 14</div>'); 
    $('#main').append(popup); 

    setTimeout(function(){ 
     popup.remove(); 
    }, 510); 
} 
可以
0

它就在你的眼睛:)

$(".popup-gold").animate({ 

    left: "+=50", 
    }, 5000, function() { 
    $(this).remove(); 

    }); 
+0

謝謝你的提醒,我沒有意識到這一點,但不幸的是我的動畫對於'.animate()'(CSS3中的5個關鍵幀)有點太複雜。自從你使用一個單一的目標,這個班,這不會有同樣的問題嗎? – JKunstwald 2014-10-04 00:12:26

+0

以及它可以改爲像$(「classname [name ='nameAsVar']」)。animate()... – Zze 2014-10-04 00:18:50