5 votes

Comment transmettre des paramètres à un plugin jQuery

J'ai une question qui pourrait sembler stupide au premier abord. J'ai du mal à comprendre et à chaque fois que je l'utilise, rien ne se passe vraiment. J'ai un plugin en jQuery que j'ai écrit moi-même qui ressemble à ceci :

(function(){
$.fn.myPlugin = function(options){
var options = $.extend({
firstParameter : null;
}
// le reste du plugin
})(jQuery)

Mais lorsque je l'appelle à partir d'un fichier HTML, comme ceci : ("#object").myPlugin(2);, cela ne fonctionne pas (notez le paramètre que j'ai passé). Mais si je passe l'argument et l'appelle ainsi : ("#object").myPlugin();, tout fonctionne. Quel est le problème ?

Merci d'avance

30voto

eepp Points 2423

Vous voulez ceci :

(function($) {
    $.fn.extend({
        myPlugin: function(options) {
            var defaults = {
                something: 23,
                otherThing: 'hello'
            };

            options = $.extend(defaults, options);

            console.log(options.something);
            console.log(options.otherThing);
        }
    });
})(jQuery);

Maintenant cela devrait fonctionner pour remplacer l'option something (n'oubliez pas de passer un objet) :

$('#object').myPlugin({something: 17});

0voto

simpletron Points 739

Vous définissez une fonction sans paramètre function() {} puis vous passez le jQuery. Cela peut être la cause du problème.

(function(){
  // rien n'est le $ ici
  $.fn.myPlugin = function(options){
    var options = $.extend({
     firstParameter : null;
    }
  // le reste du plugin
 })(jQuery)

Vous devriez changer pour

(function($) {})(jQuery) 

et je pense que cela fonctionnera. J'espère que cela vous aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X