代码被倍增并且所有实例都在运行

时间:2012-07-03 12:49:51

标签: javascript jquery

我的网站以某种方式工作,以便点击的任何链接都不会加载新页面,但会将.load()事件触发到名为“content”的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 divs他们自己的唯一id(.remain div嵌套在.count div中),即使随后加载了页面,id仍然完全不同,这并没有解决我的问题。我也尝试在函数之前放置clearInterval(倒计时),但这使它完全停止工作。有什么建议吗?

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

1 个答案:

答案 0 :(得分: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;
});