新しいフォーラム イベントを読み込んで HTML テーブルに追加するlivetickerのあるサイトがあります。
時間フィールドについては、各イベントの日時を ajax で読み込み (例: )、 jquery プラグイン cutetimeを介して人間が読める形式(例: 2013-02-15 17:28:03
) に変換しています。22 minutes ago
CuteTime の問題は、最近のバージョン(2010 年以降) では、動的にロードされる AJAX データの処理に問題があることです。
私の現在の解決策は少しうまくいくようです:
1.最初に ajax 呼び出しがフォーラム イベント全体を html テーブルとしてロードし、次に cutetime プラグインを割り当てます。
// initial load at page startup
$('#responsecontainer').load('./liveticker', {ajax:1}, function() {
// convert datetime to readable date format
$('.timestamp').cuteTime();
});
2.次に、30 秒ごとに新しいイベントをチェックし、ロードされたデータに毎回 cuteTime を割り当てます。
$('#responseEvents').load('./liveticker', {ajax:lastevent}, function() {
// stuff...
// convert datetime to readable date format
$('.timestamp').cuteTime();
})
これは Firefox と Chrome で動作するようです。ただし、Internet Explorer 9 では、すべての$(.timestamp)
要素に同じテキストが割り当てられます: just now
.
このバグ/問題の解決策を知っている人はいますか?
--
注: cutetime サイトでajax に関するコメントを見つけました。そこの誰かが彼の回避策を述べました:
追加のフィールドを作成するためにアプリをハックする必要があったため、最初にすべての値をすべてのスパンにコピーしてから、cuteTime を呼び出します。
しかし、これが現在直面している Internet Explorer のバグに何らかの形で関連しているかどうかはわかりません...