終了する秒数を含む非表示フィールドに基づいて、テーブルの各行のカウントダウン タイマーを作成しようとしています。これが私がこれまでに行ったことです:
function countdownProcedure() {
var interval = 1000;
var i = 0;
var seconds;
$(".rfqTbl tr").each(function() {
if(i > 0) {
seconds = $(this).find("#sqbTimestamp").text();
var days = Math.floor(seconds / (60*60*24));
seconds -= days * 60 * 60 * 24;
var hours = Math.floor(seconds / (60*60));
seconds -= hours * 60 * 60;
var minutes = Math.floor(seconds / 60);
seconds -= minutes * 60;
if(days < 1) { days=""; }
$(this).find("#countDown").html(days + "<pre> Days</pre> " + hours + "<pre>:</pre>" + minutes + "<pre>:</pre>" + seconds);
if(days > 1) {
$(this).find("#countDown").css({
'color':'#2A7F15',
'font-weight':'bold'
});
};
if(days < 1) {
$(this).find('#countDown').css('color','red');
$(this).find('#countDown pre:nth-of-type(1)').css('display','none');
}
if(seconds < 10) {
$(this).find("#countDown").append(" ");
};
if(minutes < 60){ interval = 1000; };
}
i++;
});
setInterval(countdownProcedure,interval);
};
ただし、私の問題は、表示される時間が更新され、したがって「カウントダウン」されるように、この関数を実行しようとしていることです (実際には 1 秒ごとまたは 30 秒ごと)。私が抱えている問題は、最初のカウントダウンの後にブラウザーがハングするだけで、クロムが何もしていないFirefoxとサファリにあります(ハングを防ぐための安全なガードがあると思います)。
どんな助けでも大歓迎です!