我很难缠着jQuery中的延迟对象。
例如,
我以为我可以使用以下语法,但是当成功发生时,这实际上同时运行成功和失败。我以为失败只会在ajax调用失败的情况下运行?
checkFoo(widget)
.success(step1, step2)
.fail(alert("failed"));
checkFoo是一个像这样的AJAX调用
function checkFoo(widget){
return $.ajax({
url: "foo.php",
data: widget,
format: json
});
}
最佳答案
您的密码
checkFoo(widget)
.success( step1(), step2() )
.fail( alert("checkfoo failed") );
立即调用
step1
和step2
和alert
,并将它们的返回值传递给success
或fail
方法。就像foo(bar());
...调用
bar
并将其返回值传递到foo
。如果要告诉jQuery成功调用
step1
和step2
,而失败则执行alert
,则传入函数引用:checkFoo(widget)
.success( step1, step2 ) // <== No parens, `step1` refers to a *function*
.fail( function() { // <== Wrap a function around the alert
alert("checkfoo failed");
});
关于javascript - jQuery延迟对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14062702/