-3

我的网站以某种方式工作,因此单击的任何链接都不会加载新页面,而是会触发 .load() 事件到名为“内容”的 div 中。

一切都很好,花花公子,但现在我遇到了一个小问题。

在其中一个内容页面上,我有以下代码:

    $('.count').each(function () {
        $this = $(this);
        countdown = setInterval(function(){
            countnow = parseInt($('.remain', $this).html());
            $('.remain', $this).html(countnow-1);
        }, 1000);
        return false;
    });

代码工作......它工作得很好。但是当我再次加载同一个页面时,代码似乎运行了两次,因为秒数一次减少了 2。然后当我再次加载它时,它一次下降 3 秒。另一个负载,它一次下降 4 秒。我又加载了几次,它下降得更快,然后我就可以阅读了。

我尝试给 .count div 赋予它们自己的唯一 id(.remain div 嵌套在 .count div 中),即使随后加载页面,id 仍然完全不同,这并没有解决我的问题。我还尝试将 clearInterval(countdown) 放在函数之前,但这只是让它完全停止工作。有什么建议么?

是的,我知道倒计时在达到 0 时不会停止。

4

1 回答 1

0

试试这个:

var countdown;
$('.count').each(function () {
    $this = $(this);
    if (!countdown) 
        countdown = setInterval(function(){
            countnow = parseInt($('.remain', $this).html());
            $('.remain', $this).html(countnow-1);
        }, 1000);
    return false;
});
于 2012-07-03T12:55:08.540 回答