ユーザーが入力した入札の「年齢カウンター」が必要なページがあります。ユーザー数は状況によって異なるため、考慮する必要があります。私はこれを書きました:
function timer(i) {
// this selects a 'hh:mm:ss' timestamp
if ($("#time_0" + i).text() !== "") {
var now = new Date();
var date = now.toDateString();
var tStamp = new Date(date + "," + $("#time_0" + i).text());
var diff = now - tStamp;
var mins = Math.floor(diff / (1000 * 60));
var secs = Math.floor((diff / 1000) % 60);
if (mins < 10) {
mins = "0" + mins;
}
if (secs < 10) {
secs = "0" + secs;
} else if (secs == 60) {
secs = "00";
}
$("#user" + i + "-t").text(mins + ':' + secs);
}
}
$(document).ready(function() {
//
var ids = [];
$("td[id^='time_0']").each(function() {
var i = ($(this).attr("id")).slice(-1);
ids.push(i);
});
for (i in ids) { // in my example ids = [1,2,3]
setInterval(function() {timer(i);}, 1000);
}
});
タイマー自体は希望どおりに機能しますが、ユーザー #2 (中央のユーザー) に対してのみ機能します。この問題が発生した場合、タイマーが機能していたのはリスト内の最初または最後のユーザーになると思いましたが、ユーザー #1 と #3 のセルが空白になっています。
これを修正する方法について誰かアイデアがありますか? お時間をいただきありがとうございます。
==編集==
必要最小限のjsfiddleを作成しました