-3

私のウェブサイトは、クリックされたリンクが新しいページをロードしないように機能しますが、「コンテンツ」という名前の div に .load() イベントをトリガーします。

すべてが素晴らしくダンディでしたが、今、小さな問題に遭遇しました。

コンテンツ ページの 1 つに、次のコードがあります。

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

コードは機能します...非常にうまく機能します。しかし、同じページを再度読み込むと、一度に 2 秒ずつ減っているため、コードが 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 に答える