如果从另一个函数调用,重新加载 div 不会更新时间
reloading div doesn't update time if it's called from another function
我有时间功能
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()
块中,它就会工作。
我怎样才能让它发挥作用?
编辑:
这是一个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 DevTools 来阐明这一点。
因此,您定义了一个函数 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
。您将节省内存和时间。
我有时间功能
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()
块中,它就会工作。
我怎样才能让它发挥作用?
编辑: 这是一个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 DevTools 来阐明这一点。
因此,您定义了一个函数 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
。您将节省内存和时间。