jQuery を使用して DIV コンテンツ ボックスを 5 秒ごとに更新していますが、この時間は実際にはエンド ユーザーが制御できます。設定された値に基づいて、次のページの更新 (またはクエリ) までカウントダウンするカウントダウン タイマーをページに設定したいと考えています。
今のところ、5 秒の静的な値にすることができますが、クエリと一緒にカウントダウンを実行する方法が本当にわかりません。
どんな助けでも大歓迎です。
setIntervalを使用できます。
var remaining = 5;
var myInterval = setInterval ( updateCountDown, 1000 );
function updateCountDown( )
{
$("mydiv").text(remaining );
remaining --;
if (remaining == 0) {
clearInterval(myInterval );
}
}
ええと...私は少し前に似たようなことをしました。jquery.timersという jQuery のプラグインを使用しました。
これは私のコードです:
function timerTick() {
counter--;
$("#lblRepeat").html('searching again in ' + counter + ':');
if (counter <= 0) {
counter = 60;
search();
}
}
function chkActivate_click(ev) {
var vr, t;
t = $(this);
vr = t.is(':checked');
if (vr) {
t.everyTime(1000, 'busqueda', timerTick);
} else {
t.stopTime('busqueda');
}
}
おそらくカウントダウンプラグインが役立つでしょう... -event
があり、 -property は非常に役立ちます。onExpiry
until
つまずくかもしれない別の問題は、js が実際のマルチスレッドをサポートしていないことです...
編集: 理解できたかどうかわかりません: ページにカウンターを表示しますか?
そうでない場合:
JavaScript で変数を設定できます。
var TimeOutValue = 5000;
function OnTimeOut()
{
// Add here your code for refreshing the DIV content
window.setTimeout(OnTimeOut, TimeOutValue);
}
入力フィールドの textchanged イベントのハンドラー: 例
function InputTextChanged()
{
TimeOutValue = document.getElementById("Id_of_Input_field").value;
}