jquery $ .ajax: передать дополнительный аргумент обратному вызову 'success' - PullRequest
15 голосов
/ 17 ноября 2010

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

Это возможно? Как:

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

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

Ответы [ 2 ]

23 голосов
/ 17 ноября 2010

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

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

$.ajax({
    ...
    success:function(data){ success_cb(data, elementid); }
});
13 голосов
/ 17 ноября 2010
function postForElement(elementId){
  $.post('/foo',someValues,function(data){
    $(elementId).html("The server returned: "+data);
  },'json');
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...