Javascript设置超时链接
这可能是一个简单的问题,但我似乎无法在函数中嵌入变量参数以供将来执行。“警报”是我想要延迟执行的函数,参数为0、1、2等Javascript设置超时链接,javascript,jquery,settimeout,chaining,Javascript,Jquery,Settimeout,Chaining,这可能是一个简单的问题,但我似乎无法在函数中嵌入变量参数以供将来执行。“警报”是我想要延迟执行的函数,参数为0、1、2等 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script language="JavaScript"> var init = function init() { for (var i = 0
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript">
var init = function init() {
for (var i = 0, max = 3; i < max; i++) {
var then;
then = (function(jj) {
return jj;
}(i));
var pp = function(jj) {
return alert(then);
};
setTimeout(function() {
pp();
}, then * 1000);
}
};
</script>
</head>
<body onload="init();">
<button onclick="init();"></button>
</body>
</html>
var init=函数init(){
对于(变量i=0,max=3;i
您实际上并没有问任何问题,所以我假设任何产生您期望的结果的实现都是您想要的
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript">
function createfunc(i) {
return function() { alert(i); };
}
var init = function init() {
for (var i = 0, max = 3; i < max; i++) {
var func = createfunc(i);
setTimeout(func, i * 1000);
}
};
</script>
</head>
<body onload="init();">
<button onclick="init();"></button>
</body>
</html>
函数createfunc(i){
返回函数(){alert(i);};
}
var init=函数init(){
对于(变量i=0,max=3;i
这将通知一个号码,然后等待一秒钟并通知另一个号码。在达到3之前:
var init = function() {
var counter = 0, //Start
max = 3 //End
var count = function() {
alert(counter) //Alert
if ( counter < max ) { //If we havent reached 3 then queue this function to be called again
window.setTimeout(function() {
count()
}, 1000)
}
counter++
}
count() //Start the counter
}
var init=function(){
变量计数器=0,//开始
最大值=3//结束
变量计数=函数(){
警报(计数器)//警报
如果(counter
这里有一个小问题:您将第一个函数包含在闭包中,而不是第二个函数,因此您基本上将
pp
var设置为第一次调用setTimeout
之前的最后一次迭代。使用then
变量的目的是什么?如果要交错调用,每个调用都有自己的值,则可能需要将对setTimeout
本身的调用放在自己的闭包中:
var init = function init() {
for (var i = 0, max = 3; i < max; i++) {
(function (jj) {
setTimeout(function() {
alert(jj);
}, jj * 1000);
})(i);
}
};
var init=函数init(){
对于(变量i=0,max=3;i
这是一个复杂的卷积代码,我敢肯定,如果我们理解了您真正想做的事情,就会有更少的卷积方法。代码有什么问题(除了混乱)?警报中的值是否错误?