JS SetTimeOut()在类函数递归调用出错怎么回事?

2025-01-05 16:44:54
推荐回答(2个)
回答1:

解决方法捕获按键的事件。


每个按键都对应一个ASCII码 比如回车的ASCII码是13 每个按键的ASCII码你可以在百度上查。

setTimeout() 方法的返回值是一个唯一的数值,如果你想要终止 setTimeout() 方法的执行,那就必须使用 clearTimeout() 方法来终止,而使用这个方法的时候,系统必须知道你到底要终止的是哪一个 setTimeout() 方法 (因为你可能同时调用了好几个 setTimeout() 方法),这样 clearTimeout() 方法就需要一个参数,这个参数就是 setTimeout() 方法的返回值 (数值),用这个数值来唯一确定结束哪一个 setTimeout() 方法

你的setTimeout(function(),1000)会返回一个值。
比如你要用回车结束setTimeout js代码如下。
function test(event,id) {
event = event || window.event;
if(event.keyCode==13) {
clearTimeout(id);
}
}
这里的ID 就是你 setTimeout方法的返回值。了解了吗?

回答2:

我认为主要问题是setTimeout对'this.test()'中this的解析出了问题,举例我刚写的比如
function wzen(z)
{
z++;if(z>10){return false;}
var wz=document.getElementById('sponsorads46554');
if (wz != null){
callStats('close');closepop(); return false;
}
setTimeout("wzen("+z+")",500);
}
其中z参数就要分离出来,不然setTimeout会把它当作字串处理。