J'ai un plugin JQuery 1.4.2, qui utilise un ensemble d'options. Il est un code pseudo est comme ceci:Pourquoi mon plugin JQuery ne possède-t-il pas sa propre instance?
(function($) {
// Shell for the plugin code
$.fn.myPlugIn = function(options) {
// Plugin code
return this.each(function() {
// for each item in selector
options = $.extend($.fn.myPlugIn.defaults, options);
...do stuff
});
$.fn.myPlugIn.defaults = {
header : null,
position : 'absolute',
top : null,
left : null,
forinput : null,
forAnchor : null,
sAjaxSource : null,
onClick : null
};
})(jQuery);
Lorsque vous appelez le plug-in pour plusieurs éléments sur une seule page, les options ne sont pas uniques - les options précédentes éléments sont encore dans les options.
$(document).ready(function() {
$("#div1").myPlugIn(
{forinput: "input1",
onClick: function(data){
... do stuff
},
});
$("#div2").myPlugIn({
forAnchor: "link1",
onClick: function(data){
... do stuff
},
header: "Parts"
});
});
Qu'est-ce que je fais mal? Je m'attendais à ce que chaque fois que le plugin a été trouvé, il utiliserait les options qui lui sont passées. Au lieu de cela, il utilise toutes les options de la première instance et écrase toutes les propriétés ré-initialisées de la seconde instance.
Toutes les réponses sont appréciées. Merci d'avance pour lire mon message.
Ce ne sera pas une variable globale ici, puisqu'il s'agit d'un paramètre de la fonction. –
Merci pour les réponses! – Griff