关于此代码:
function hello(){
alert("hello");
}
function hi(){
alert("hi");
}
jQuery.getJSON('foo.bar',function(data){
if (data.foobar) {
this.done(hello);
}
alert('callback done');
}).done(hi);
并假设从foo.bar
{"foobar":true}
我希望按此顺序收到提醒:
但我无法在done()
- 回调中添加success
- 函数。
您是否有提示我如何在done()
- 回调中添加success
- 函数?
答案 0 :(得分:1)
jqXHR
对象是回调函数的第三个参数:
jQuery.getJSON('foo.bar', function(data, textStatus, jqXHR) {
if (data.foobar) {
jqXHR.done(hello);
}
alert('calback done');
}).done(hi);
答案 1 :(得分:0)
我认为你不应该首先尝试组合回调和done()
处理程序,更不用说像这样交织它们了。只需使用一个done()
处理程序:
jQuery.getJSON('foo.bar').done(function (data) {
hi();
if (data.foobar) {
hello();
}
});
或者,如果您担心hi()
无法执行其他操作,则可以将其分别传递给done()
:
jQuery.getJSON('foo.bar').done(hi, function (data) {
if (data.foobar) {
hello();
}
});