0

jqueryUI スライダーに 2 つのハンドルを設定しました。その変更イベント ハンドラは次のようになります。

change: function(event, ui){
    $("#priceFilterForm").submit();
},

1 つのハンドルが動かされるとすぐにフォームを起動します。


変更イベント ハンドラを次のように動作させたい:

  • 変更イベントが発生した場合は、3 秒間待機します
  • 別の変更イベントが発生した場合は、3 秒のタイマーをリセットします
  • 3 秒以内に他の変更イベントがない場合は、フォームを送信します

その動作を実現する方法についてのテクニックを教えてください。


解決策はGarryに感謝します:

var timer = $.timer(function(){
   $("#priceFilterForm").submit();
});

// slider options:

slide: function(event, ui){
    timer.pause();
    // ...
},
change: function(event, ui){
    timer.stop();  // Not sure if stop is needed here..
    timer.set({ time : 1500, autostart : true });
}

+ タイマー プラグインを JavaScript に含めることを忘れないでください

4

1 に答える 1

0
var timer = $.timer(function() {
            alert('This message was sent by a timer.');
    });

    timer.set({ time : 5000, autostart : true });

    timer.set(options);
    timer.play(reset);  // Boolean. Defaults to false.
    timer.pause();
    timer.stop();  // Pause and resets
    timer.toggle(reset);  // Boolean. Defaults to false.
    timer.once(time);  // Number. Defaults to 0.
    timer.isActive  // Returns true if timer is running
    timer.remaining // Remaining time when paused

デモ

http://jchavannes.com/jquery-timer/demo

ダウンロード

http://code.google.com/p/jquery-timer/downloads/detail?name=jquery-timer.zip ソースを表示

http://code.google.com/p/jquery-timer/source/browse/

于 2013-02-04T17:36:42.503 に答える