我们可以将成功功能移到.ajax之外吗?

问题描述

| 在jquery示例中,我看到通常是在$ .ajax()内定义成功函数。 我们可以将其移动到体外吗?     

解决方法

如果您的意思是这样的:
function onSuccess()
{
    $(this).addClass(\"done\");
}

$.ajax({
  url: \"test.html\",context: document.body,success: onSuccess 
});
那是的,你可以做到。     ,当然是。您可以将匿名函数分配给变量:
var handleSuccess = function(data) {
  alert(data);
};
或者您可以将其命名为函数:
function handleSuccess(data) {
  alert(data);
}
对于这两种选择,您只需在对象中使用变量/函数的名称:
$.ajax({
  success: handleSuccess
  ...
});
    ,我使用dojo比使用jquery多,但想法是相同的。只要ajax调用可以引用此外部函数,就没有理由不能这样做。您可能会遇到这样的问题:调用此Ajax函数时,它可能不再能够使用成功函数,具体取决于您如何进行设置。 dojo.hitch(context,function)将为您解决此问题。