Jquery 操纵运行延迟

Jquery 操纵运行延迟,jquery,jquery-deferred,Jquery,Jquery Deferred,如果dfd延迟对象正在运行但尚未解决,是否可以向其添加另一个函数?您可以使用: 有点不清楚,但我认为您需要检查延迟是否已解决,如果未解决,则添加另一个回调: 基本上你可以检查一下 $('div').eq(0).promise().done(function(){ alert(); }); 查看是否可以添加另一个回调。在标准jQuery方法链中,我们希望.fadeOut()返回jQuery,但是在表达式中 if (dfd.state() == 'resolved') 。。。通过一个内

如果dfd延迟对象正在运行但尚未解决,是否可以向其添加另一个函数?

您可以使用:


有点不清楚,但我认为您需要检查延迟是否已解决,如果未解决,则添加另一个回调:

基本上你可以检查一下

$('div').eq(0).promise().done(function(){
    alert();
});

查看是否可以添加另一个回调。

在标准jQuery方法链中,我们希望
.fadeOut()
返回jQuery,但是在表达式中

if (dfd.state() == 'resolved')
。。。通过一个内部jQuery魔术,传递给
$.when()
的参数实际上是从
$('div').eq(0)
fx
队列派生的承诺。明确地说,我们会写

$.when( $('div').eq(0).fadeOut(1000) )...;
$.when( $('div').eq(0).fadeOut(1000).promise('fx') )...;
实际上没有理由使用
$.when()
,除非您需要对两个或多个承诺做出响应。我们可以这样写

$.when( $('div').eq(0).fadeOut(1000) )...;
$.when( $('div').eq(0).fadeOut(1000).promise('fx') )...;
。。。承诺可以通过多种方式附加任意数量的“完成”回调

下面是一个可能的示例:

var promise = $('div').eq(0).fadeOut(1000).promise();

是的,解决与否无关紧要。这似乎不能回答问题。