2010-09-30 3 views
2

Ceci est mon pluginplugin jquery fonction publique

(function($){ 
    $.fn.editor = function(options){ 
     var defaults = {}, 
     settings = $.extend({},defaults, options); 
     this.each(function(){ 
      function save(){ 
       alert('voila'); 
      } 
     }); 
    } 
})(jQuery); 

Je veux appeler la fonction de sauvegarde de l'extérieur du plug-in. Comment puis-je le faire ?

+1

Est-ce la fonction de toute façon liée au plug-in ou il peut être statique? –

+0

La fonction est-elle sauvegardée en utilisant les valeurs de fermeture de la méthode anonyme dans laquelle elle est définie? –

+0

oui, la fonction utilise d'autres fonctions et variables dans la fermeture du plugin. –

Répondre

3

ce qui fonctionne le mieux pour moi.

(function($){ 
    $.fn.editor = function(options){ 
     var defaults = {}, 
     settings = $.extend({},defaults, options); 
     this.each(function(){ 
      function save(){ 
       alert('voila'); 
      } 
      $.fn.editor.externalSave= function() { 
       save(); 
      } 
     }); 

    } 
})(jQuery); 

appel

$(function(){ 
    $('div').editor(); 
    $.fn.editor.externalSave(); 
}); 
+1

Ce code appellerait enregistrer sur tous les éditeurs, je suis sûr que ce n'est pas un effet désiré. –

1

par exemple quelque chose comme ça ?:

call method

var save = function() { 

    var self = this; // this is a element of each 

}; 

(function($){ 
    $.fn.editor = function(options){ 
     var defaults = {}, 
     settings = $.extend({},defaults, options); 
     this.each(function(){ 
      save.call(this) // you can include parameters 
     }); 
    } 
})(jQuery); 
+0

Mon intention est de garder la fonction enregistrer à l'intérieur du plugin, et l'appeler de l'extérieur –

Questions connexes