Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Jquery中实现真正的随机性?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在Jquery中实现真正的随机性?

Javascript 如何在Jquery中实现真正的随机性?,javascript,jquery,Javascript,Jquery,我正在尝试编写一个小脚本,每25到60秒在我的页面上随机放置一个项目 下面的代码将随机地将div添加到我的页面中,但之后的每个事件都会在同一时间执行 例如,如果脚本在44秒开始,它将每44秒添加一个新div,而不是随机添加 如何实现真正的随机性 var contentDiv = ['firstDiv','secondDiv']; function popDiv(min, max) { var timedDiv = contentDiv[Math.floor(Math.random()

我正在尝试编写一个小脚本,每25到60秒在我的页面上随机放置一个项目

下面的代码将随机地将div添加到我的页面中,但之后的每个事件都会在同一时间执行

例如,如果脚本在44秒开始,它将每44秒添加一个新div,而不是随机添加

如何实现真正的随机性

var contentDiv = ['firstDiv','secondDiv'];
function popDiv(min, max) {
    var timedDiv =  contentDiv[Math.floor(Math.random() * (max - min + 1) + min)];
    jQuery( "#" + timedDiv ).fadeIn( "slow" ).delay(4000).fadeOut("slow");
}

popDiv(1, contentDiv.length - 1)

setInterval(function(){
    popDiv(1, contentDiv.length - 1);
},  
Math.round(Math.random() * (60000 - 15000)) + 15000);

以下是一般原则:

let maxTime = 60000,
    minTime = 25000,
    doSomething = function () {
      // do something...
      setTimeout(function(){
        doSomething();
      }, Math.random() * (maxTime - minTime) + minTime)
   };
doSomething();

设置间隔延迟后,无法更改间隔延迟,因此。。。也许间隔不是您想要的。请使用setTimeout而不是setInterval,并在每次调用popDiv时调用它。谢谢。“稍微重新安排一下,它就如预期的那样工作了。@FGatlin,很高兴我能帮上忙。”。快乐编码!