Ric*_*cky 4 javascript settimeout
我基本上试图完成以下任务.我希望它在页面加载后5秒钟,它将变量设置为true.
一旦成为现实,它将继续提供警报"真实"..暂时.
如果有人试图在5秒之前点击按钮,它会将警报设为false.
这是我设法打字的内容.不完全正常.谢谢 :)
试试这个:
setTimeout(function() { window.link = true; }, 5000);
Run Code Online (Sandbox Code Playgroud)
这将在5秒后将全局变量"link"设置为true,这将满足您的if语句.
编辑 如果您是初学者,这可能有点复杂,但更好的方法是使用函数范围而不是全局范围.
在您的情况下,声明计时器函数如下:
var timer = (function () {
var link = false;
setTimeout(function() { link = true; }, 5000);
return function() {
alert(link);
};
}());
Run Code Online (Sandbox Code Playgroud)
这样,匿名函数返回另一个函数,该函数变为timer(),但这样计时器可以访问其"私有"链接变量.有关更多信息,请查看Mozilla关于JavaScript变量范围的文章
你有正确的想法,但你有一个可变范围的小问题.为了减少麻烦,最好不要使用字符串eval选项setTimeout(我知道在Web上的教程中显示)并使用匿名函数:
var link;
function loading(){
setTimeout(function(){
link = true;
}, 5000);
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您将确切地知道link声明的位置并且范围非常明确.