javascript - setInterval 不适用于内容自动更新

标签 javascript jquery html

我正在尝试使用这个https://codepen.io/zeinab92/pen/xwWGWM

但它不会在不重新加载页面的情况下自动更新“小时、分钟和状态”。

如何才能使其工作,以便时间会自动更新,并且状态文本也会根据时间条件(无论是开放还是关闭)进行更新。

我喜欢这个脚本,除了自动更新问题,我尝试创建一个新函数,

setInterval(function() {
  $("#timeDiv").html(data);
}, 1000);

通过禁用默认

setInterval(checkTime, 1000);

setTimeout而不是setInterval

但运气不佳。

最佳答案

经过调试,发现代码有问题。

您已将 now 声明为 checkTime 函数外部的全局变量,并且当页面加载时,now 变量存储的值新日期,即页面加载时日期的值。因此,now 的值仅更新一次,因为全局变量仅执行一次。

解决方案:now变量放在checkTime内,以便每次调用checkTime时它都会有新的Date值。

function checkTime(){
var now=new Date();

....
}

希望这能解决问题。 (JS Fiddle)

关于javascript - setInterval 不适用于内容自动更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837175/

相关文章:

javascript - 如何限制用户输入的数量?

javascript - 递归过多的原因是什么?

javascript - 如何在 magnific popup 插件的弹出窗口中打开弹出窗口

html - 将网格高度调整到没有滚动条的可用屏幕

html - 行周围的 CSS 类不起作用

javascript - 如何更改 JavaScript 对象的字段名称?

javascript - 如何将月/年的对象数组值拆分为月份和年份等两个值?

jquery - 更新 jQuery Flexbox

javascript - Javascript 中的电话号码识别

html - 将关闭按钮放置在不同尺寸图像的右上角