2010-08-23 5 views
0

J'avais besoin de conseils sur la façon dont je peux supprimer la répétition dans mon projet actuel.jQuery supprimant la répétition dans plusieurs appels de méthode Colorbox

J'ai plusieurs boîtes de dialogue de boîte de couleur qui sont de la même taille, ont la même transition etc. quand elles sont appelées mais effectuent différentes manipulations de jquery, appels AJAX etc. quand elles ont terminé le chargement.

Actuellement, ils sont tous dans leurs propres déclarations distinctes, mais je voudrais les déplacer en un seul car il devient ingérable. Je suppose que la meilleure façon de gérer cela est de créer une fonction et de passer des paramètres à cette fonction pour les valeurs par défaut comme les dimensions et les transitions, mais je ne savais pas comment gérer les aspects les plus uniques quand ils sont nécessaires.

Par exemple, si j'ai deux méthodes de colorbox comme si:

$(".pricing > tbody > tr > th > .price_report > a").colorbox({ 
    transition: "elastic", 
    innerWidth: "800px", 
    innerHeight: "800px", 
    opacity: "0.5", 
    onComplete:function(){ 

     $("myDiv").addClass("dialogLoaded").append('<span class="mySpan" />'); 

     } 
}); 

et:

$(".wrap .widget .dialog_call").colorbox({ 
    transition: "elastic", 
    innerWidth: "800px", 
    innerHeight: "800px", 
    opacity: "0.5", 
    onComplete:function(){ 
     $.ajax({ 
      url: "test.html", 
      cache: false, 
      success: function(html){ 
      $("#results").append(html); 
      } 
     }); 
    } 
}); 

donc cela peut évidemment être transformé en une fonction, mais comment pourrais-je passer les différences dans le code à l'événement onComplete en cas de besoin?

Répondre