<script>
var timeoutid=setTimeout("alert('32ew')",1000);
setTimeout(clearTimeout(timeoutid),3000);
</script>
alert是在1秒后调用,而clearTimeout是在3秒后才调用,为什么alert不起作用了,也就是为什么超时调用为什么会被取消了啊?
to 楼主:
问题是因为setTimeout的传参方式有问题,你的第二个setTimeout中传的参数有问题,不能加括号,当页面解析到你的参数时,看到括号直接执行函数了
setTimeout(foo(),2000) // 正常应该这么写 =》 setTimeout(foo,2000)
如果你需要在执行时给函数传参,比如timeoutid,可以这么写
setTimeout(clearTimeout,3000,timeoutid);
把参数放到3000的后面,这样执行时,就自动把参数传给执行函数了
var timeoutid=setTimeout("alert('32ew')",1000);
setTimeout(clearTimeoutId,500);
function clearTimeoutId() {
clearTimeout(timeoutid);
}
var timeoutid=setTimeout("alert('32ew')",1000);
setTimeout("clearTimeout(timeoutid)",500);
setTimeout()接受的第一个参数应该是一个函数;你这里clearTimeout(timeoutid)这条语句会被立即执行,所以第一行的定时器瞬间就被取消。把语句转换成匿名函数就好了:
var timeoutid=setTimeout("alert('32ew')",1000);
setTimeout(function(){clearTimeout(timeoutid)},3000);