我正在尝试创建一个从0开始的全局变量,并且每秒钟都增加1。这是我的代码:
$(document).ready(function()
{
time = 0;
setTimeout(function(){
time += 1;
}, 1000);
});
问题是,当我输出时间值(在时间+ = 1行之后)时,该值始终为1。我希望它走1、2、3、4、5等。我已经看到,不将var放在变量的声明之前会使它成为全局变量,但这并没有保留值。
在我看来,问题是time = 0
每个周期都重置为0,但是我不知道如何防止这种情况的发生。我不能只是忽略给时间一个值,因为将1加到一个空变量是不好的。
我该怎么做呢?
我想你可能想setInterval
不会setTimeout
。
$(document).ready(function () {
var time = 0;
setInterval(function () {
time += 1;
console.log(time);
}, 1000);
});
请注意,上述“时间”值的作用范围是该函数。如果您需要将其设置为全局:
var time = 0;
$(document).ready(function () {
setInterval(function () {
time += 1;
console.log(time);
}, 1000);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句