2017-06-15 26 views
0

我在文档中显示了多个对象,这些对象上有状态(状态)。如果一个对象的状态设置为active,我会显示一个向上计时器来向用户显示该对象活动的时间。因此,代码:多个对象上的SetInterval定时器在初始化后取消

countTimer = (el, seconds) -> 
    setInterval (-> 
     totalSeconds = seconds 
     ++totalSeconds 
     hour = Math.floor(totalSeconds/3600) 
     minute = Math.floor((totalSeconds - (hour * 3600))/60) 
     seconds = totalSeconds - (hour * 3600 + minute * 60) 
     $(el).siblings('.status').find('.timer').text("#{hour}:#{minute}:#{seconds}") 
    ), 1000 

    $('.object').each (index, element) => 
    $el = $(element) 
    secondsPassed = parseInt $el.data('start-time') 
    if $el.data('state') == 'active' 
     countTimer(element, secondsPassed) 

在初始化时,脚本加载传递正确的时间(基于data-start-time),例如

0:1:46 

但随后在第一第二的各元素的计时器抵消:

0:0:46 

,然后只计数秒。

不知道为什么发生这种情况。任何意见赞赏。

小提琴https://jsfiddle.net/fsob9qfb/

回答

1

尝试没有使用变量变量的变化,因为每个通话功能

+0

你能不能详细请 –

+0

给我看在https://jsfiddle.net/ –

+0

HTTPS代码://的jsfiddle .net/fsob9qfb/ –