Javascript 如何为多个秒表时间重置秒表?

Javascript 如何为多个秒表时间重置秒表?,javascript,timer,Javascript,Timer,我正在尝试使用锚标记使用多个秒表计时器。我已成功完成此操作,但我无法添加一个功能,例如如果我单击第一个计时器,它将从零开始计时,当我单击第二个计时器时,第一个计时器的值将为零,第二个计时器将从零开始计时。我给出了我的工作代码如下: JS: 我使用的HTML代码是: <a href="#" onclick="activate(1)">Click here to start the timer</a> <span id="hrs1" >00</spa

我正在尝试使用锚标记使用多个秒表计时器。我已成功完成此操作,但我无法添加一个功能,例如如果我单击第一个计时器,它将从零开始计时,当我单击第二个计时器时,第一个计时器的值将为零,第二个计时器将从零开始计时。我给出了我的工作代码如下:

JS:

我使用的HTML代码是:

<a href="#" onclick="activate(1)">Click here to start the timer</a>
    <span id="hrs1" >00</span>:<span id="mins1" >00</span>:<span id="secs1">00</span></strong>
    <br/>
    <a href="#" onclick="activate(2)">Click here to start the timer</a>
    <span id="hrs2" >00</span>:<span id="mins2" >00</span>:<span id="secs2">00</span>

00:00:00

00:00:00

这是我正在使用的js fiddle演示:

当您使用相同的方法activate()启动第二个计时器时,如果计时器已经运行,它将使第一个计时器为零

解决方案是“您必须为多个计时器维护多个唯一的计时器ID”

例如,假设您有T1和T2计时器来开始计时

var timerMap={};
timerMap[createUniqueId for T1] = setInterval();
timerMap[createUniqueId for T2] = setInterval();

to clear timers
clearInterval(timerMap[createUniqueId for T1]);
clearInterval(timerMap[createUniqueId for T2]);

在您的情况下,您必须具有createUniqueId,并且应该在activate()方法中添加到timerMap。它们将独立工作。

我无法理解代码。我正在使用activate函数,但我传递了一个参数来区分它。函数activate(id){//Stopping…running timer if(timerMap[id]){clearInterval(timerMap[id]);}//Start timer…timerMap[id]=setInterval(“timer(+id+”),1000);返回id;}这里的id应该是唯一的,所以两个计时器必须有不同的id。
var timerMap={};
timerMap[createUniqueId for T1] = setInterval();
timerMap[createUniqueId for T2] = setInterval();

to clear timers
clearInterval(timerMap[createUniqueId for T1]);
clearInterval(timerMap[createUniqueId for T2]);