我有六个功能,如scan1()
,scan2()
... scan6()
。每个函数加载不同的图像。现在我想在每次加载页面时随机调用函数。
页面加载第一次,请致电sacn4()
页面加载,请致电scan6()
页面加载,调用scan1()
等等
页面加载我的意思是页面刷新/重新加载。
或者在我正在尝试的代码中帮助我
var arr = ['scan1()', 'scan2()', 'scan3()'];
var ran = Math.floor(Math.random() * 6) + 1
$(document).ready(arr[ran]);
感谢
答案 0 :(得分:1)
$(function() {
var arr = [scan1, scan2, scan3],
rand = Math.floor(Math.random() * arr.length),
func = arr[rand];
func();
});
答案 1 :(得分:0)
这应该解决它:
var arr = [scan1, scan2, scan3];
var ran = Math.floor(Math.random() * 6) + 1
$(document).ready(arr[ran]());
您需要使用函数对象填充数组,而不是包含函数名称的字符串。在最后一行,当你说:
arr[ran]()
从数组中检索函数然后调用它。
答案 2 :(得分:0)
来自here:
$(function() {
var arr = ['scan1', 'scan2', 'scan3'];
var ran = Math.floor(Math.random() * 3) + 1;
window[arr[ran]]();
});
答案 3 :(得分:0)
这些函数存储在您的全局对象中,因此您无需将它们作为'functionName()'
存储在数组中,而是存储为'functionName'
。然后使用call()
或apply()
进行通话。
var arr = ['scan1', 'scan2', 'scan3'];
var ran = Math.floor(Math.random() * 6) + 1
$(document).ready(window[arr[ran]].call(this));
答案 4 :(得分:0)
你应该重构你的代码,你想做的事情可以用一种更简单的方法完成,你不需要每个图像一个6个函数,只创建一个scan()
函数,这个函数将有一个数组包含所有图像然后随机选择一个,如下所示:
function scan() {
var images = ['im1.jpg','im2.jpg','im3.jpg','im4.jpg','im5.jpg','im6.jpg'];
var inumber = Math.floor((Math.random()* images.length)+1);
var random_image = images[inumber-1];
//Do whatever you want with random_image
alert( random_image ); //Shows the random image
}
作为一个加号,使用上面的代码,您甚至可以在将来向images
数组添加更多图像,它们将自动包含在随机选择中。
使用上面的代码,您的document.ready
将只是:
$(document).ready( scan() );