我想这样做:
var whatever = myfunction;
var time = 200;
setTimeout(whatever, time);
function myfunction() {
//do something
}
它不起作用我不确定为什么
更好的例子: 这是html HTML:
<div id="example1" class="example-card" style="visibility: hidden;"></div>
<div id="example2" class="example-card" style="visibility: hidden;"></div>
这是JS JS:
function example1() {
$("#example1").css('visibility', 'visible');
}
function example2() {
$("#example2").css('visibility', 'visible');
}
$(window).on("load", function(){
var time = 0;
$('.example-card').each(function() {
var exampleId = this.id;
setTimeout(exampleId, time);
time = time + 200;
});
});
谢谢,
答案 0 :(得分:2)
var whatever = myfunction;
var time = 2000;
setTimeout(whatever, time);
function myfunction() {
alert("hi");
}
答案 1 :(得分:2)
目前您在代码中调用字符串,这是不可能的:
function test() {
console.log('Test');
}
var id = 'test';
id(); // Fails, this is the string.
您可以通过window
获取该功能,因为它是全局的:
window[id](); // Success, this is a function.
这有效,但不安全:您还可以调用窗口中声明的其他函数。例如,如果您的ID为alert
,则会调用提醒功能。
执行此操作的最佳方法是声明对象中的函数:
var callbacks = {
test: function() {
console.log('Test')
}
};
var id = 'test';
callbacks[id](); // Calls the function in the object
答案 2 :(得分:1)
function example1() {
$("#example1").css('visibility', 'visible');
console.log("example1");
}
function example2() {
$("#example2").css('visibility', 'visible');
console.log("example2");
}
$(window).on("load", function() {
var time = 0;
var func = 0;
$('.example-card').each(function() {
switch(this.id) {
case "example1":
func = example1;
break;
case "example2":
func = example2;
break;
default:
func = 0;
break;
}
if (func) {
setTimeout(func, time);
time = time + 2000;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id="example1" class="example-card" style="visibility: hidden;"></div>
<div id="example2" class="example-card" style="visibility: hidden;"></div>