2016-08-19 6 views
0

次のコードがあり、関数 "placeNewSponsor"が4秒ごとに繰り返される必要があります。 (関数は画像を配置し、3秒後に隠し、1秒間待ってから繰り返します)。しかし、私がこれをテストすると、関数は一度だけ実行されます。jQuery:setTimeoutを使用すると関数が2回実行されない

function placeNewSponsor() { 
 
    $('.sponsorContainer').each(function() { 
 

 
    var imageCount = $(".imageContainer").children().length; 
 

 
    do { 
 
     randomInt = Math.floor(Math.random() * imageCount + 1); 
 
    } while ($.inArray(randomInt, usedNumbers) !== -1); 
 

 
    usedNumbers.push(randomInt); 
 
    var randomImage = $('.imageContainer a:nth-child(' + randomInt + ')').clone(); 
 

 
    $(this).append(randomImage); 
 
    }); 
 

 
    usedNumbers = []; 
 

 
    // Hide after 3 seconds 
 
    setTimeout(function() { 
 
    $('.sponsorContainer').hide(); 
 
    }, 3000); 
 

 
    // Re-activate function 
 
    setTimeout(placeNewSponsor, 4000); 
 
} 
 

 
placeNewSponsor();

答えて

2

あなたは、コンテナを非表示にしていますが、それらを再表示することはありません。

$('.sponsorContainer').show(); //show them 
setTimeout(function(){ $('.sponsorContainer').hide(); }, 3000); //hides them 
関連する問題