不能 clearInterval 然后触发另一个 setInterval

Cant clearInterval and then trigger another setInterval

我有一个用户列表,点击每个用户我得到一个不同的时间戳,我从中显示一个计时器,它被放置在一个 id #timer

的范围内
<span id="timer"></span>

这是正常工作的。

这是一个 jsfiddle。 jsfiddle

似乎 clearInterval(x); 并没有停止之前的定时器,而是启动了一个新的定时器,我明白了(同时有两个定时器)

我也尝试过使用 window.clearInterval(x); 但它也没有用。还尝试在 $(document).on('click', '.list', function() 内部和外部设置 var x,但没有任何效果。

你有一个 shadowed x 这里:

var x;

$(document).on('click','#timer',function() {
    var timestamp = localStorage.getItem("LivechatExpirationTime");
    var countdown = new Date(timestamp).getTime();
    //alert (countdown)
    var x = setInterval(function () // <-- you redeclare x, so it's different from the first one

如果您只删除第二个 var,它将按预期工作:

var x;

$(document).on('click','#timer',function() {
    var timestamp = localStorage.getItem("LivechatExpirationTime");
    var countdown = new Date(timestamp).getTime();
    //alert (countdown)
    x = setInterval(function ()

https://jsfiddle.net/wosehfc3/