我的网站以某种方式工作,以便点击的任何链接都不会加载新页面,但会将.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时,倒计时当前不会停止。
答案 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;
});