-1

如果我定义了这些功能:

function playZoomout() {
// do things
}
function playZoomin() {
// do things
}
function playPanright() {
// do things
}
function playPanleft() {
// do things
}

并且每四秒运行一次:

var timer = setInterval(playZoomout,4000);

如何用从上面定义的函数中随机选择的函数替换“playZoomout”?我正在寻找 jQuery 或纯 javascript 解决方案。

4

3 回答 3

3

创建一个函数引用数组,然后从数组中随机获取一个元素并调用它。

var fns = [playZoomout, playZoomin, playPanright, playPanleft]
setInterval(function () {
    fns[Math.floor(Math.random() * fns.length)]();
}, 1000)

演示:小提琴

于 2013-09-23T15:26:48.543 回答
0

使用数字键索引将每个函数名添加到数组中。然后,在上下索引之间随机生成一个数字,并使用控制结构重复该过程。

于 2013-09-23T15:28:40.830 回答
0

像这样的东西应该可以工作(见http://jsfiddle.net/w6sdc/):

/* A few functions */
var a = function() {
    alert("A");
}

var b = function() {
    alert("B");
}

var c = function() {
    alert("C");
}

/* Add the functions to an array */
var funcs = [a, b, c];

/* Select a random array index */
var i = Math.floor(Math.random() * 2) + 0;

/* Call the function at that index */
funcs[i]();

从这一点开始,将索引选择和函数调用包装在 a 中setInterval应该是直截了当的。

于 2013-09-23T15:31:06.813 回答