jquery $ .ajax:将附加参数传递给'success'回调

时间:2010-11-17 06:08:37

标签: jquery ajax

我使用$ .ajax将数据发布到服务器。但是我想将一个额外的参数传递给'success'回调,以告诉回调函数响应所用的HTML元素的id。

有可能吗?像:

success_cb(data, elementid)
{
    (update the elementid with the server returned data)
}

$.ajax({
    ...
    success:success_cb(elementid)
});

2 个答案:

答案 0 :(得分:22)

有可能。尝试类似:

function success_cb(data, elementid)
{
    (update the elementid with the server returned data)
}

$.ajax({
    ...
    success:function(data){ success_cb(data, elementid); }
});

答案 1 :(得分:13)

function postForElement(elementId){
  $.post('/foo',someValues,function(data){
    $(elementId).html("The server returned: "+data);
  },'json');
}

通过在与elementId局部变量相同的范围内声明函数文字,该函数变为可以访问该局部变量的闭包。 (或者有些人可能会说,当函数文字也引用未在其范围内定义的非全局变量时,它只会成为闭包。这只是用单词绑定。)