jQuery:使用setTimeout时函数不会超过两次

时间:2016-08-19 17:09:17

标签: javascript jquery

我有以下代码,函数“placeNewSponsor”应该每4秒重复一次。 (该功能应放置图像,在3秒后隐藏它们,等待1秒并重复自身)。但是当我测试它时,该函数只执行一次。

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();

1 个答案:

答案 0 :(得分:2)

您隐藏了容器,但您从未重新显示它们。

$('.sponsorContainer').show();  //show them
setTimeout(function(){ $('.sponsorContainer').hide(); }, 3000);  //hides them