Jquery $.ajax: передать дополнительный аргумент для обратного вызова "success"

Я использую $.ajax для отправки данных на сервер. Однако я хочу передать дополнительный параметр для обратного вызова "success", чтобы сообщить функции обратного вызова идентификатор HTML-элемента, на который отвечает ответ.

Возможно? Как:

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

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

Ответ 1

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

Объявляя литерал функции в той же области, что и локальная переменная elementId, эта функция становится закрывающей, которая имеет доступ к этой локальной переменной. (Или кто-то может сказать, что он становится закрытием, когда литерал функции также ссылается на неглобальную переменную, которая не определена в ее области. Это просто переключение со словами.)

Ответ 2

Это возможно. Попробуйте что-то вроде:

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

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