作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试显示一些具有随机效果的元素。
我将这些函数存储在一个数组中,并尝试从该数组中获取一个随机函数,但这些函数似乎同时运行。
$.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()
时,您正在调用该函数,但您需要返回函数引用,这就是为什么所有函数似乎同时运行的原因。 .
更新:
然后要执行随机选择的函数,您可以说:
$.random_show()
或将您的返回更改为:
return $.rand(hide_array)();
关于javascript - 如何用javascript返回随机显示功能效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28902409/
我是一名优秀的程序员,十分优秀!