2010-10-15 8 views
0

J'ai une fonction jQuery (dépouillée juste pour cet exemple):fonction d'appel en fonction jQuery au sein

(function($) { 

    $.fn.Lightbox = function(options) { 

     var opts = $.extend(defaults, options); 

     function initialize() { 
      $('#lightbox').show(); 
      return false; 
     }; 

     function close() { 
      $('#lightbox').hide(); 
     }; 

     return this.click(initialize); 
    }; 

})(jQuery); 

J'utilise ensuite ....

$('a.image').Lightbox(); 

pour l'exécuter. Je veux pouvoir appeler la fonction close() séparément, par ex.

$.Lightbox.close(); 

Comment puis-je réaliser cela dans mon code?

Répondre

5

Vous pouvez ajouter une méthode pour cela, comme ceci:

(function($) { 
    $.fn.Lightbox = function(options) { 
     var opts = $.extend(defaults, options); 

     function initialize() { 
      $('#lightbox').show(); 
      return false; 
     }; 

     function close() { 
      $('#lightbox').hide(); 
     }; 
     return this.click(initialize); 
    };  
    $.Lightbox = { 
     close: function() { 
      $('#lightbox').hide(); 
     } 
    }; 
})(jQuery); 
+0

Merci, est-il possible que je peux obtenir pour appeler la fonction d'origine à proximité() sans répéter le code? – fire

+0

@fire - Je ferais l'inverse, en liant celui-là à la main: 'function close() {$ .Lightbox.close(); } '... comme il n'y a rien de dépendant de l'instance, ça pourrait aussi bien rester simple. –

Questions connexes