J'essaye de lier un événement à une "méthode" d'une instance particulière d'une "classe" Javascript en utilisant JQuery. L'exigence est que je dans le gestionnaire d'événements devrait être en mesure d'utiliser le mot-clé "this" pour se référer à l'instance à laquelle je liais initialement l'événement.Comment lier un gestionnaire d'événements à une instance dans JQuery?
De façon plus détaillée, que j'ai une « classe » comme suit:
function Car(owner) {
this.owner = owner;
}
Car.prototype = {
drive: function() {
alert("Driving "+this.owner+"s car!");
}
}
Et une instance: « méthode »
var myCar = new Car("Bob");
Je veux maintenant lier un événement à l'unité de ma voiture de sorte que quand jamais je clique sur un bouton par exemple le lecteur "méthode" est appelé sur l'instance myCar de la "classe" de voiture. Jusqu'à présent, j'utilisais la fonction suivante pour créer une fermeture qui me permettait d'accéder confortablement aux membres de l'instance en utilisant le mot clé "this" dans mes "méthodes".
function createHandler(obj, method) {
return function(event) {
return obj[method](event||window.event);
}
}
Je l'ai utilisé comme suit:
document.getElementById("myButton")
.addEventListener("click", createHandler(myCar,"drive"));
Comment puis-je accomplir quelque chose comme ça avec JQuery? Je demande spécifiquement d'associer "ceci" à une instance désignée, l'autre étant tout ce que je peux gérer seul.
Jetez un oeil à ceci: http://stackoverflow.com/questions/4289045/jquery-attach-event-to-method-in-instance – Remotec