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发出的)