2012-02-29 5 views
0

I ont le code suivant plusieurs fois:jQuery manipulation succès événement ajax

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

Je voudrais transformer cela en une fonction comme utiliser une seule fois, somthing comme:

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

Comment est-ce que j'exécuterais une méthode spécifiée dans la variable complète? C'est possible? J'ai regardé l'événement de succès ajax pour jQuery mais comme il serait déclenché sur chaque élément qui l'utilise, je devrais alors vérifier si c'est la bonne requête ajax ...

Répondre

2

Si complete est une référence à une fonction,

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

assurez-arguments Sûre complete correspondent à ce qui est donné par success.

EDIT: Si complete est un objet, juste trouver la fonction sur elle et l'utiliser:

success: complete.foo 

Hope this est ce que vous demandez ...

0

Si comprendre correctement la question

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 

} 

EDIT: vous aurez certainement envie d'ajouter un argument pour les données à envoyer au serveur