如何在5秒后删除动态添加的元素?

时间:2015-05-22 23:56:10

标签: javascript jquery each settimeout

我制作了一个简单的游戏,用户应该点击苍蝇将其从屏幕上删除。用户不应该在猫掉落时单击它,并且我希望在5秒后使猫gif消失(从DOM中移除)。

如果之前已经回答,我道歉。由于我的经验非常有限,我很难解决这个问题。这是我的第一个问题/帖子。感谢您提供任何反馈:)!

$('.square').each(function(i){
    if (($('.square').eq(i)).has(".cat")){
        setTimeout(function(){
            $('.square').eq(i).find('img').remove();
    }, 5000);       
};

^这是我试图编写的代码... .square类是构成表格的正方形,就像div的网格......而.cat类是指丢弃的图像。

问题是多只猫可以同时掉在屏幕上。

我需要页面识别猫被丢弃的时间,发生超时时间5秒,然后在5秒后从页面中删除该特定的猫。

感谢您的帮助:)!

var randomize = function (x) {return Math.floor(Math.random()*x)};

var startFunk = function(){
    setTimeout(function(){
        $('.square:empty')[randomize(($('.square:empty').length))].innerHTML = dropArray[randomize(dropArray.length)];
        startFunk();
    }, 500);
};

2 个答案:

答案 0 :(得分:0)

可以帮忙

$('.square').each(function(i){
    if ($(this).find('.cat').length > 0){
        $(this).find('.cat').delay(5000).fadeOut(0, function(){
            // change ..^... with img 
            $(this).remove();
        });
    }
});

DEMO Here

答案 1 :(得分:0)

var startFunk = function () {
    setTimeout(function () {
        var sqr = $('.square:empty')[randomize(($('.square:empty').length))];
        sqr.innerHTML = dropArray[randomize(dropArray.length)];
        sqr.has('.cat').delay(5000).empty();
        startFunk();
    }, 500);
};

摆脱$('.square').each(function(i){...部分。

相关问题