如何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)();
我正在尝试显示一些具有随机效果的元素。
我将这些函数存储在一个数组中,并尝试从该数组中获取一个随机函数,但这些函数似乎同时出现。
$.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)();