javascript - 如果从另一个函数调用,重新加载 div 不会更新时间

标签 javascript html nwjs

我有一个时间函数

function hm()
{
    var d = new Date();
    var h = ('0'+d.getHours()).substr(-2);
    var m = ('0'+d.getMinutes()).substr(-2);
    var str0 =  h + ':' + m;

  return {date: str0, hour: h, minute: m};


}



var hm = hm();
var date = hm.date;
var hour = hm.hour;
var minute = hm.minute;

我有一个 div

<div id="mytime">Time</div>

我从中调用时间函数来更新 div

function refreshDiv() {


document.getElementById('mytimer').innerHTML =  'Time:.....' + hm.date;

}


$(document).ready(function () {
   setInterval(refreshDiv, 5000); 
});

它不会像 12:03 12:04 那样更新时间,但如果我放置 function hm() 和变量 var hm = hm(); var date = hm.date; 进入 function refreshDiv() block 即可工作。

我怎样才能让它发挥作用?

编辑: 这是一个 nwjs 项目。

如果我在 refreshDiv() 中添加 hm = hm(); 我得到:

 "Uncaught TypeError: object is not a function", source: file:///home/.../index.html (182) 

182 是包含的行号 hm = hm();

最佳答案

您不需要存储单独的值:

var hm = hm();
var date = hm.date;
var hour = hm.hour;
var minute = hm.minute;

你有一个函数hm():调用它,并立即获取返回对象的值:

document.getElementById('mytimer').innerHTML = 'Time: ' + hm().date;
为什么?让我们使用 Chrome 开发工具来澄清这一点。

enter image description here

因此,您定义了一个函数hm()。 当你调用它时,你会得到返回的对象:{a: 0000000000000, b: "test"} 您可以使用 .

访问该对象的字段
var object = hm(); // Assign the returned value of hm() to object
alert(object.a);   // Alerts value of the field a of object

如果您不想分配新变量,请使用hm().a。您将节省内存和时间。

关于javascript - 如果从另一个函数调用,重新加载 div 不会更新时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43792320/

相关文章:

javascript - devops-rest APi - $expand 不适用于 "Work Items - Get Work Items Batch"

javascript - 使用 HTML textarea 将数据绑定(bind)到每个元素

javascript - ASP.NET MVC 3 : Client IP addres Using Javascript

html - 如何使背景图像和表格响应?

javascript - 在隐藏窗口的情况下启动应用程序

javascript - super 卷轴导航

javascript - $(this)[0].defaultValue 的安全/可靠/跨浏览器兼容性如何

javascript - "Sticky"滚动位置

javascript - 在 NW.JS 下获取 OSX 中任何类型的唯一标识符

如果设置了 window.location.href,node-webkit 不会最小化到托盘