私は、自動スライドショーを制御するためにsetTimeOutを使用しています。javascriptをトリガーするsetTimeOutイベントが早すぎる
(あなたがここでそれを見ることができます:。http://thingist.com/labs/ipad.shtmlを - 基本的に私が働いている間、見てかなり何かイメージがのredditのAPIから来ている)
コードはおよそ次のようになります。
next() {
image_url = images[key]["url"]
$("#image").html(vsprintf("<img src='%s'>", [image_url]));
key++;
setTimeOut(function() { next(); }, 30000);
問題は、別の方法で(たとえばdiv onclickを使用して)「次の」関数をトリガすると、setTimeOutコールバック関数がまだキューに入れられているということです。だから私は "次の"画像を表示しますが、コールバックが起動すると、次の画像が再び表示されます。あなたが次の何回連続していても、約30秒の遅れたバーストがあなたに続くでしょう。 (すべてのキューに入れられたタイムアウトが発生すると)。
setTimeOutのコールバックを早期にトリガーする方法はありますか?またはそれをすべてデキューするだけですか?
's/setTimeOut/setTimeout /' –