无法在 javascript 中使用 settimeout 递归调用函数
Unable to invoke recursively the function using settimeout in javascript
下面是我的JavaScript代码。我正在尝试每秒触发我的函数 timedisplay()。但事实并非如此。
function timedisplay() {
alert ("Welcome");
var pelement = document.getElementById("myclock");
var timeobj = new Date();
alert (timeobj);
pelement.innerHTML = timeobj.toLocaleTimeString();
alert (pelement.toLocaleTimeString());
settimeout (timedisplay,1000);
}
Timer Clock Testing..
<button onclick="timedisplay()">Click me</button>
<p id="myclock"></p>
问题出在哪里?
您可以考虑调用 setInterval
函数而不是 setTimeout
函数,并且只需调用一次。虽然技术上允许setInterval
在你的回调中,但最好把它放在一个单独的函数中,如下所示:
/* the callback */
function refreshTime() {
var pelement = document.getElementById("myclock");
var timeobj = new Date();
pelement.innerHTML = timeobj.toLocaleTimeString();
}
/* start the clock */
function timedisplay() {
setInterval( refreshTime, 1000 );
}
pelement 元素不需要 toLocaleTimeString() 函数,它引用元素myclock
设置超时应该去设置超时
否则你的javascript很好:
alert (pelement.toLocaleTimeString());
function timedisplay()
{
//alert ("Welcome");
var pelement = document.getElementById("myclock");
var timeobj = new Date();
//alert (timeobj);
pelement.innerHTML = timeobj.toLocaleTimeString();
//alert (pelement.toLocaleTimeString());
setTimeout (timedisplay,1000);
}
Timer Cock Testing..
<button onclick="timedisplay()">Click me</button>
<p id="myclock">
</p>
对于初学者来说,它是setTimeout
,而不是settimeout
- 大写很重要。
其次,不要使用递归;几乎没有理由想要这样的递归超时。要使其重复,请改用setInterval
,并将其放在正文或其他功能中。
也就是说,如果你在setTimeout
中修复拼写错误,你的代码看起来还可以。
相关文章:
- 将jQuery对象传递到setTimeout递归函数中
- 为什么setTimeout适用于无休止的递归调用
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- 递归setTimeout模式
- jQuery setTimeout ajax递归函数在即时消息程序中短时间后抛出错误
- 无法在 javascript 中使用 settimeout 递归调用函数
- 为什么 setTimeout 会阻止递归 $http.get 调用
- IE9在302之后重新提交表单-可能是由于递归setTimeout()调用
- 在Coffeescription中编写递归setTimeout循环
- 带有setTimeout的递归函数
- setTimeout和带参数的递归函数
- Javascript setTimeout递归不会'不适用于Chrome和Firefox
- 递归setTimeout()在后台暂停
- javascript settimeout在递归函数中不起作用
- jQuery使用setTimeout进行递归ajax轮询
- 递归setTimeout会导致不一致的行为
- Javascript-在递归函数中获取setTimeout的返回值
- 我如何优化这个调用setTimeout()的递归函数
- jQuery/JavaScript:我的递归setTimeout函数在选项卡失效时加速
- jquery setTimeout递归太多