Bonjour

J'utilise JQuery depuis peu et je rencontre une problème lorsque je veux utiliser des fonctions JQuery dans un objet javacript :

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
 
function test ()
{
    // 1. OK
    $("#bouton").click( function(e) { alert("hello"); } );
 
    // 2. Ne marche pas, la fonction evclick n'est pas trouvé
    $("#bouton").click( function(e) { evclick(this); } );  
 
    // 3. Ne marche pas non plus
    $("#bouton").click( function(e) { $(this).evclick(this); } );     
 
 
    this.evclick = function(param)
    {
        alert("hello encore");
    }
 
 
}
 
// l'instanciation d'un objet "test" de cette manière
// va empêcher la fonction evclick d'être trouvée
var montest = new test();
 
// par contre, si on instancie comme cela, 
// elle est trouvée (mais je veux bien sûr pouvoir instancier
// plusieurs objets de la même classe donc c'est inutile...)
test();
Je suppose que dans ce contexte, le this ne pointe plus vers l'objet instancié (ou quelque chose comme ça...), donc je n'arrive pas à appelez les méthodes de mon objet depuis cet objet. Dans mon exemple, je pourrais déclarer les instructions directement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$("#bouton").click( function(e) { /* tout le contenu de ma méthode ici */ } );
mais ce n'est pas très fonctionnel et empêche de réutiliser mon code.

Merci pour toutes pistes de solution