JQuery AJAX обработка событий - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть следующий код несколько раз:

   $.ajax({
        type: "POST",
        cache: false,
        url: "url here",
        success: function (data) {
            // do something here...
        }
    });

Я бы хотел превратить это в функцию, так как использую ее только один раз, что-то вроде:

function ajax (type, url, complete){
        $.ajax({
           type: type,
           cache: false,
           url: url,
           success: function (data) {
               GO TO THE METHOD SPECIFIED IN complete
        }
 });

Как мне запустить метод, указанный в полной переменной? Является ли это возможным? Я посмотрел на событие успеха ajax для jQuery, но, поскольку оно будет запускаться для каждого элемента, который его использует, мне нужно будет проверить, является ли это правильный запрос ajax ...

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Если complete является ссылкой на функцию,

function ajax (type, url, complete){
        $.ajax({
           type: type,
           cache: false,
           url: url,
           success: complete
 });

Просто убедитесь, что аргументы complete совпадают с аргументами success.

РЕДАКТИРОВАТЬ: Еслиcomplete - это объект, просто найдите на нем функцию и используйте ее:

success: complete.foo

Надеюсь, это то, что вы спрашиваете ...

0 голосов
/ 29 февраля 2012

Если вы правильно поняли вопрос

function ajax (type, data, url, complete){
    $.ajax({
       type: type,
       data:data,
       cache: false,
       url: url,
       success: complete
    });
}
var obj={ id:1}
/* example case use */
ajax ('POST', obj 'site.com', myAjaxComplete);

/* a success callback from ajax*/ 
function myAjaxComplete(data){
    // data argument is return data from server

}

РЕДАКТИРОВАТЬ: вам обязательно нужно добавить аргумент для данных для отправки на сервер

...