我有几个标签,在套接字事件上我想要倒计时所有打开标签。我试图像这样做一些想法:
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有人帮忙吗?
答案 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
}