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

时间:2011-05-24 05:24:45

标签: jquery

在jquery示例中,我看到通常在$ .ajax()中定义成功函数 我们可以将它移到身体外。

3 个答案:

答案 0 :(得分:4)

如果你的意思是这样的话:

function onSuccess()
{
    $(this).addClass("done");
}

$.ajax({
  url: "test.html",
  context: document.body,
  success: onSuccess 
});

然后是的,你可以这样做。

答案 1 :(得分:2)

是的,当然。您可以为变量分配匿名函数:

var handleSuccess = function(data) {
  alert(data);
};

或者您可以将其命名为命名函数:

function handleSuccess(data) {
  alert(data);
}

对于这两种选择,您只需在对象中使用变量/函数的名称:

$.ajax({
  success: handleSuccess
  ...
});

答案 2 :(得分:0)

我使用dojo比jquery更多,但想法是一样的。只要ajax调用可以引用此外部函数,就没有理由不能这样做。您可能遇到这样的问题:当调用此ajax函数时,它可能无法再进入成功函数,具体取决于您的设置方式。 dojo.hitch(context,function)会为你解决这个问题。