好消息。从昨天开始,您可以取消您的承诺。
我发布了我的小插件jquery-timing的新版本,它提供了两种方法,其中包括 .wait() 和 .unwait()。
var deferred = $("#box").delay(2000).show("slow").delay(2000).promise();
$.wait(deferred, function(){ log("Done"); });
如果您想取消注册回调:
$.unwait();
这些静态版本的 wait 和 unwait 还支持一个可选的组名,以不取消任何处理程序,而只取消一个特定的集合。
除此之外,您还可以做很多更聪明的事情,例如:
$('#box').wait(deferred).addClass('ready');
或一条链中的整个代码,没有等待选项:
$("#box").delay(2000).show("slow")
.delay(2000).join(function(){log("Done");})).addClass('ready');
或者更短的选项来取消两个暂停:
$("#box").wait(2000).show("slow",$)
.wait(2000, function(){log("Done");})).addClass('ready');
只需查看最适合您的文档、示例和 API。