J'ai tenté d'écrire une classe en caractères d'imprimerie qui a une méthode qui agit comme un rappel de gestionnaires d'événement pour un événement jQuery.
class Editor {
textarea: JQuery;
constructor(public id: string) {
this.textarea = $(id);
this.textarea.focusin(onFocusIn);
}
onFocusIn(e: JQueryEventObject) {
var height = this.textarea.css('height'); // <-- This is not good.
}
}
Dans le onFocusIn gestionnaire d'événements, Tapuscrit voit " ce "comme étant le" il " de la classe. Cependant, jQuery remplace la référence et définit l'objet DOM associé à l'événement.
Une alternative consiste à définir un lambda dans le constructeur comme le gestionnaire d'événement, auquel cas la Machine crée une sorte de fermeture avec un caché _ce alias.
class Editor {
textarea: JQuery;
constructor(public id: string) {
this.textarea = $(id);
this.textarea.focusin((e) => {
var height = this.textarea.css('height'); // <-- This is good.
});
}
}
Ma question est, est-il un autre moyen pour accéder à la référence à l'intérieur de la méthode de la fonction de gestionnaire d'événement à l'aide de la Machine, pour surmonter cette jQuery comportement?