我想在随机时间间隔内做一个随机函数。 这是代码:
function numberOne() {
$("#here").hmtl("numberOne");
}
function numberTwo() {
$("#here").hmtl("numberTWO");
}
var randomfunction = [numberOne, numberTWO]
var randomfunction = randomfunction[Math.floor(Math.random() * randomfunction.length)];
(function loop() {
var rand = Math.round(Math.random() * (1000 - 500)) + 500;
setTimeout(function() {
randomfunction();
loop();
}, rand);
}());
它不起作用。我不知道为什么。你能帮我解释一下所有的错误吗?谢谢!
答案 0 :(得分:0)
如果您正在检查控制台,则会发现它引发以下错误:
未捕获的ReferenceError:未定义numberTWO(...)
因此,只需修复此问题,您的代码就可以正常工作,替换:
var randomfunction = [numberOne, numberTWO];
通过:
var randomfunction = [numberOne, numberTwo];
希望这有帮助。
答案 1 :(得分:0)
我可以看到一个错误的函数调用,hmtl而不是html。
但我认为我们可以改变你的方法并将其提升到一个新的水平。你可以这样做。
function numberOne() {
$("#here").html("numberOne");
}
function numberTwo() {
$("#here").html("numberTwo");
}
var randomFunctionsArray = [numberOne, numberTwo];
function loop() {
randomFunctionsArray[Math.floor(Math.random() * randomFunctionsArray.length)]();
setTimeout(function() {
var rand = Math.round(Math.random() * (1000 - 500)) + 500;
loop();
}, rand);
}
loop();
答案 2 :(得分:0)
jQuery(function($){
function functionOne () {
console.log('one');
}
function functionTwo () {
console.log('two');
}
var functions = [functionOne, functionTwo];
(function loop () {
var waitTime = Date.now() % 5000;
var executionIndex = Date.now() % functions.length;
console.log(executionIndex);
console.log(waitTime);
functions[executionIndex]();
setTimeout(loop, waitTime);
})();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>