Bonjour à tous,

Je suis en train de créer un plugin de petite taille pour répondre à un besoin ponctuel, j'ai donc choisi un pattern simple qui me permette d'avoir des méthodes privées/publiques:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(function($) {
 
 
	function MonSuperPlugin(element, options) {
		...
	}
 
	$.fn.monsuperplugin = function(options) {
		var defaults = ...
		var settings = $.extend({}, defaults, options);
 
 
		return this.each(function(){
			if (!$(this).data('monSuperPlugin'))
				$(this).data('monSuperPlugin', new MonSuperPlugin($(this), settings));
		});
	}
})(jQuery);
Problème: après appel du plugin sur un élément de la page, il se charge très bien, mais la propriété .data('monSuperPlugin') de l'élément est parfois undefined.

J'ai donc fait un petit algo qui rafraîchit la page toutes les secondes et teste la valeur dans .data, résultat: c'est très aléatoire. Elle est undefined parfois une fois sur deux, parfois une sur trois, parfois 5 fois d'affilées, parfois ça marche 20 fois de suite, bref aucune logique.

Quelqu'un pourrait-il m'aider à comprendre, je ne vois pas du tout de quoi ça peut venir. Pour information, le plugin est très court (100-200 lignes) et n'utilise aucune requête asynchrone.



Merci d'avance pour votre aide.