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 :
et la structure HTML :
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(); });
Le problème est qu'au moment du second alert, je ne reçoit que "instance 2".
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>
...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 !
Partager