0

我正在尝试为我的网页构建多个计时器,到目前为止,

$('.timer').each(function() {
var timer = setInterval(function() {
    var time = $(this).text().split(':');
    var minutes = parseInt(time[0], 10);
    var seconds = parseInt(time[1], 10);
    // TIMER RUN OUT 
    if (!minutes && !seconds) {
        // CLEAR TIMER
        clearInterval(timer);
    // MINUS SECONDS
    } else {
        seconds -= 1;
    }
    // MINUS MINUTES
    if (seconds < 0 && minutes != 0) {
        minutes -= 1;
        seconds = 59;
    // ADD ZERO IF SECONDS LESS THAN 10
    } else {
        if (seconds < 10) {
            seconds = '0' + seconds;
        }
    }
    // ADD ZERO IF MINUTES LESS THAN 10
    if (minutes < 10) {
        minutes = '0' + minutes;
    }
}, 1000);
});

这虽然行不​​通!我哪里错了!

谢谢

4

2 回答 2

1

首先,在你的setInterval回调中,this不再引用.timer元素。尝试将其更改为selfvar self = this;在调用之前添加setInterval。其次,你永远不会把你的时间写回你的.timer元素。

于 2012-04-05T23:21:22.113 回答
0

你想显示一个倒计时的时钟吗?在这种情况下,您不会在所有计算后更新文本。尝试添加:

$(this).text(minutes+':'+seconds);
于 2012-04-05T23:18:32.707 回答