Javascript 为几个标签倒计时
我有几个选项卡,在套接字事件中,我想为所有打开的选项卡倒计时。我试着这样想:Javascript 为几个标签倒计时,javascript,jquery,Javascript,Jquery,我有几个选项卡,在套接字事件中,我想为所有打开的选项卡倒计时。我试着这样想: var calendar = { timer: function (counter, id){ var t = counter; var element = $(document).find('.view'+id); var parent = element.parent(); var e = $('<
var calendar = {
timer: function (counter, id){
var t = counter;
var element = $(document).find('.view'+id);
var parent = element.parent();
var e = $('<div style="display: inline" id="timer'+id+'"></div>').appendTo(parent);
var id = setInterval(function() {
t--;
if(t < 0) {
clearInterval(id);
e.remove();
} else {
e.text(t);
}
}, 1000);
}
}
var日历={
定时器:功能(计数器,id){
var t=计数器;
var元素=$(文档).find('.view'+id);
var parent=element.parent();
变量e=$('').appendTo(父项);
var id=setInterval(函数(){
t--;
如果(t<0){
清除间隔(id);
e、 删除();
}否则{
e、 文本(t);
}
}, 1000);
}
}
但我有两个问题:
1.这段代码我只能为一个元素执行。例如:
div1->这里是倒计时。
div2->这里没有
在每个选项卡的div1中,倒计时是不同的,但它同时开始。
有人能帮忙吗?考虑到您的评论,如中所述,非活动选项卡的执行优先级较低,这可能会影响JavaScript计时器 因此,一个解决方案是监听focus,然后重新同步socket.io计时器
window.addEventListener('focus', function () {
// request socket.io response
})
你能提供一支笔或小提琴吗?嗯,2个div正在工作,但当我打开2个选项卡时,倒计时就不同了(开始倒计时是通过socket.io发出的)