选择随机功能

时间:2012-03-20 17:25:33

标签: javascript

我有一个功能列表:

    function randomiseiconscycle1() {
    $("#iconTwoContainer img, #iconFiveContainer img, #iconSevenContainer img").fadeIn(300);
    setTimeout( function(){
        $("#iconTwoContainer img, #iconFiveContainer img, #iconSevenContainer img").fadeOut(300);
    },200);

function randomiseiconscycle2() {
    $("#iconOneContainer img, #iconSixContainer img").fadeIn(300);
    setTimeout( function(){
        $("#iconOneContainer img, #iconSixContainer img").fadeOut(300);
    },200);
}

每次我点击这个按钮我想要随机激活8个功能中的一个(如上所述)。

任何帮助都会很有用。

5 个答案:

答案 0 :(得分:7)

引用数组中的函数:

var iconcycle = [
  randomiseiconscycle1, randomiseiconscycle2,
  randomiseiconscycle3, randomiseiconscycle4,
  randomiseiconscycle5, randomiseiconscycle6,
  randomiseiconscycle7, randomiseiconscycle8
];

现在您可以随机选择一个并调用它:

iconcycle[Math.floor(Math.random() * iconcycle.length)]();

答案 1 :(得分:3)

javascript函数中的

只是对象,所以你可以用它们做一些有趣的事情(比如随机选择一个)

这应该足以让你入门:

http://jsfiddle.net/jvGkp/

var arrayOfFuncs = [];

arrayOfFuncs.push(function () { alert('first func!'); });
arrayOfFuncs.push(function () { alert('second func!'); });
arrayOfFuncs.push(function () { alert('third func!'); });

arrayOfFuncs[0]();

答案 2 :(得分:0)

我认为你正在寻找类似的东西......

function callRandomFunction() {
    var random = Math.floor(Math.random()*8);
    switch(random){
    case 0:
        randomiseiconscycle1();
        break;
    case 1:
        ....
    ...
    }
}

答案 3 :(得分:0)

您可以创建一个函数数组,生成一个随机数并使用它来调用其中一个函数:

http://jsfiddle.net/4PfAC/1/

答案 4 :(得分:0)

假设您有2个函数,即randomiseiconscycle1和randomiseiconscycle2

$(function(){

var totalfunc=2; // if more than 2 functions than increase the number.

function randomiseiconscycle1() {
    var name=arguments.callee.name;
    alert(name);
    setTimeout( function(){
        alert(name);
    },200);
}

function randomiseiconscycle2() {
    var name=arguments.callee.name;
    alert(name);
    setTimeout( function(){
        alert(name); 
    },200);
}    

$('button').on('click', function(){
    var randomnumber=Math.floor(Math.random()*totalfunc+(1));
    var func="randomiseiconscycle"+randomnumber;
    eval(func)();
});

});​

小提琴是here