2011-03-01 61 views
4

我有一个问题,我认为答案是简单的,但我真的不能找到它...做一些功能结束之后

我有一个创建具有AJAX内容的功能。功能完成后,我想对创建的内容进行一些操作。要做到这一点,我需要等到创建所有内容后才能使用它。

我宁愿是这样的:

viewAllAccounts(function() { 
    //do something 
}); 

viewAllAccounts().queue(function() { 
    // do something 
}); 

但offcourse这行不通 :)

我不想碰viewAllAccounts函数,因为它在我的应用程序中被多次使用。

是否有一种简单的方法可以在函数完成后执行某些操作,而不会改变函数本身?

提前致谢!

+0

将调用另一个函数(即不soemthing)之前的'返回;'上调用'viewAllAccounts'? – 2011-03-01 14:29:38

回答

3

当你用jQuery调用ajax调用时,有一堆处理程序在ajax调用完成时触发。你应该钩到那些。在

http://api.jquery.com/jQuery.ajax/

特别是“成功”和“错误”性质看看,看看。只需为这些人定义函数,并在请求完成时调用它们。

2

因为如果你不想浪费数百字节和一堆jQuery的*毫秒:

您可以创建第二个功能:

function viewAllAccountsWithFinishingFunction(func) { 
    viewAllAccounts(); 
    return func(); 
} 

然后调用:

viewAllAccountsWithFinishingFunction(function() { 
    //do something 
}); 

*我喜欢jQuery,但它只用于数百个功能中的一个有,我不觉得有必要。

+0

我是一名设计师,这对我来说看起来很古怪。 – 2016-07-20 06:09:09