现在的需求是这样的?
我有一个列表 列表中有倒计时的服务
于是写了一个 JS 的函数
<body>
<div id="timer1" >
</div>
<div id="timer2">
</div>
<div id="timer3">
</div>
</body>
<script type="text/javascript">
var addTimer = function () {
var list = [],
interval;
return function (id, time) {
var timestamp = (new Date()).valueOf(); //当前时间
timestamp = String(timestamp).substring(0, 10); //截取前10位
time = time - timestamp; //截止时间戳
if (!interval)
interval = setInterval(go, 1000);
list.push({ ele: document.getElementById(id), time: time });
}
function go() {
for (var i = 0; i < list.length; i++) {
list[i].ele.innerHTML = getTimerString(list[i].time ? list[i].time -= 1 : 0);
if (!list[i].time)
list.splice(i--, 1);
}
}
function getTimerString(time) {
d = Math.floor(time / 86400),
h = Math.floor((time % 86400) / 3600),
m = Math.floor(((time % 86400) % 3600) / 60),
s = Math.floor(((time % 86400) % 3600) % 60);
if (time>0){
var time_text = "";
if (d != 0) {
time_text += d + "天" ;
}
if (h != 0) {
time_text += h + "小时" ;
}
if (m != 0) {
time_text += m + "分钟"
}
return time_text;
}else{ return "订单时间已经到"};
}
} ();
addTimer("timer1", 1469049158)
</script>
但问题是 需要在页面底部 先执行 addTimer()函数 , 列表中的所有数据都是 Ajax 通过 Json 拉取的.
本来想使用 HTML 的 onload 事件让他自动执行.例如
<div id="timer1" onload="addTimer(this,1469049158)"> </div>
<div id="timer2" onload="addTimer(this,1469048858)"> </div>
但是 onload 无法再 DIV 中使用. 请问大家有什么好的方法吗?
用AJAX获取数据,以及加载到浏览器中,这个过程不都是由你自己控制的吗?你自己应该可以确切知道该div什么时候加载完吧。