几个标签的倒计时

时间:2017-07-12 15:54:57

标签: javascript jquery

我有几个标签,在套接字事件上我想要倒计时所有打开标签。我试图像这样做一些想法:

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);

        }
    }

但我有两个问题: 这段代码我只能执行一个元素。例如:

  

div 1 - &gt;这里正在倒计时。    div 2 - &gt;这里不是

在每个标签上的div 1中,倒计时不同,但它同时开始。 Coud有人帮忙吗?

1 个答案:

答案 0 :(得分:0)

考虑到您的评论,如this answer中所述,非活动标签的优先级执行率较低,这会影响JavaScript计时器

因此,解决方案是听取焦点,然后重新同步你的socket.io计时器。

    func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        print("message: \(message.body)")
        // and whatever other actions you want to take
    }