我正在使用 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 的回调?还是完全出队?