Bonjour,

je planche depuis quelques jours sur une question de variable privée à l'intérieur d'un plugin jQuery.

Avant d'aller plus loin, voici mon code test :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
/* PLUGINNAME */
(function($){
	$.fn.test = function(options){
		var opts = $.extend({},$.fn.test.defaults,options);
 
		return this.each(function(){
			init($(this));
			opts.callback();
		});
 
		function init(obj){
			var ref = obj;
 
			var o = $.meta ? $.extend({}, opts, obj.data()) : opts;
			o.param = obj.text();
			console.log(o.param+' : '+ref.text());
			// me renvoi bien "instance 1" puis "instance 2"
 
			obj.append('<a class="testeur" href="#" title="click test">click test</a>');
			obj.children('.testeur').each(function(){
				$(this).click(function(e){
					e.preventDefault();
					testeur(ref,o);
				});
			});
		}
		function testeur(obj,o){
			alert(obj.text());
			alert(o.param);	// renvoi systématiquement "instance 2" (???)
		}
	};
	$.fn.test.defaults = {
		param : '',
		callback : function(){}
	};
})(jQuery);
/* /PLUGINNAME */
$(function(){
	$('.test').test();
});
et la structure HTML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<div id="instance1" class="test">
	instance 1
</div>
<div id="instance2" class="test">
	instance 2
</div>
Le problème est qu'au moment du second alert, je ne reçoit que "instance 2".
...alors que je veux désespérément avoir "instance 1" pour le premier et "instance 2" pour le second.

Quelqu'un pourrait éclairer ma lanterne ?
Plus j'y pense et plus je me dis que je m'y prend mal... mais ma matière grise frise... ^^'

Un grand merci d'avance parce que je sèche vraiment là... ^^

[Monkey Monk]
That's all folks !