如何return随机显示函数效果javascript

How to return a random show function effect with javascript

我正在尝试显示一些具有随机效果的元素。

我将这些函数存储在一个数组中,并尝试从该数组中获取一个随机函数,但这些函数似乎同时出现。

$.random_show = function(){
            (function($) {
            $.rand = function(arg) {
                if ($.isArray(arg)) {
                    return arg[$.rand(arg.length)];
                } else if (typeof arg === "number") {
                    return Math.floor(Math.random() * arg);
                } else {
                    return 4;  // chosen by fair dice roll
                }
                };
            })(jQuery);

            $.hide1 = function(){
                alert ('right');
                $('.feed_g_audio_holder_overlay').show("slide", { direction: "right" }, 700);
            }
            $.hide2 = function(){
                alert ('left');
                $('.feed_g_audio_holder_overlay').show("slide", { direction: "left" }, 700);
            }
            $.hide3 = function(){
                alert ('down');
                $('.feed_g_audio_holder_overlay').slideDown();
            }

            var hide_array = [$.hide1(), $.hide2(), $.hide3()];
            return $.rand(hide_array);
            }

我哪里弄错了?

改变这个:

var hide_array = [$.hide1(), $.hide2(), $.hide3()];

至:

var hide_array = [$.hide1, $.hide2, $.hide3];

当你说 $.hide1() 调用函数时,你需要 return 函数引用,这就是为什么所有函数似乎 运行同时..

更新:
然后执行随机选择的函数,你可以说:

$.random_show()

或将您的 return 更改为:

return $.rand(hide_array)();