我停留在当前项目的jQuery 1.4.3上,并且需要一些有关如何最好地组织以下内容的建议。
假设我有两个函数都执行ajax调用,并且我只想在第一个函数成功的情况下调用第二个函数。话虽如此,在我的应用程序中有时也需要调用函数a而无需调用函数b。因此,将调用放到第一个函数成功方法内的第二个函数是没有意义的。
我想做类似的事情,
function doStuff(){
functionA().success( functionb() ).failure();
}
我通常使用.done()进行编排;但这是在jQuery 1.5中引入的,现在我仍然停留在1.4.3上。
最佳答案
确保在functionA()
成功处理程序中调用它很有意义。只是有条件地调用它。
// Set a variable to determine if you will need to call functionB()
var youNeedToCallFunctionB = true;
// And call functionA()
functionA();
// Function definition:
function functionA() {
$.ajax({
url: ...,
success: function() {
if (youNeedToCallFunctionB) {
// Call functionB() in the success handler when needed...
functionB();
}
}
});
}
functionB() {
// Some other AJAX call...
}
更好的是,将参数传递给
functionA()
,该参数确定是否调用functionB()
functionA(youNeedToCallFunctionB) {
// same thing as above, but pass the parameter
}
// Called as
functionA(true);