javascript - jQuery:使用 setTimeout 时函数未执行两次

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

最佳答案

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

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

关于javascript - jQuery:使用 setTimeout 时函数未执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39044450/

相关文章:

javascript - 同一 block 元素一次可见和变量命名

javascript - 返回页面 javascript 后,分区不会保持隐藏状态

jquery - 为什么 Flexslider 方向按钮不​​显示?

javascript - 通过查找和文本操作 jquery 中的 var

javascript - 如何在HTML表格中显示二维数组JSON对象的内容

javascript - 显示/隐藏 Divs 多个单选按钮 JQuery

javascript - jQuery UI 自动完成 : How to base on JSON data NOT name & Label

javascript - 如何显示两个回复,并将其余回复折叠在 View 回复下。 (我很难显示两个回复)

javascript - 如何使用 jquery 处理 php 循环元素

javascript - 如何制作水平/自定义 Bootstrap 下拉列表?