我有一个变量speed
由用户从键盘控制,我想一直显示当前值。
我试过了:
var user_speed= 1; //init
<h3 style="float:left;" id="userspeed"></h3>
document.getElementById("userspeed").innerHTML = user_speed.toFixed(2);
但我得到的仅是speed = 1
而且它从未改变过。
有没有办法继续更改显示的值,而不创建每次用户更改速度并再次执行document.getElementById()...
时触发的功能?
答案 0 :(得分:2)
为什么不使用setInterval
更新值,如下所示:
var speed = 1; //init
setInterval(function(){
document.getElementById("userspeed").innerHTML = user_speed.toFixed(2);
}, 1000);
这将每1秒(1000毫秒)更新一次。
答案 1 :(得分:0)
您只获得初始值,因为您只调用该代码一次。
正如您所说,如果您想要更改该值,您需要创建一个对该函数的调用才能更新该值。
答案 2 :(得分:0)
我认为没有办法解决。您可能必须使用函数和事件。因为当你不知道用户输入某些键时,你怎么知道或触发一些计算呢?
更新:您可能知道 setInterval / setTimeout 是邪恶的!
如果你看看这个link,你会发现你应该避免这些功能,原因不是很充分。简化为:
...第一个参数是一个字符串,你实际上传递了一些JavaScript,当计时器到期时,它将在全局命名空间中进行评估。再次阅读evals的邪恶,然后再回来。好消息是您不需要传递一串JavaScript代码。 ...