J'ai une classe:correct « this » dans le bouton jQuery rappel
function RustEditor() {
this.init = function() {
var saveButton = this.container.find("button.saveButton");
saveButton.click(function(){this.save();});
};
...
Lorsque je clique sur le bouton, il se plaint que this.save n'est pas une fonction. C'est parce que "ceci" ne se réfère pas à l'instance de RustEditor ici, mais au bouton. Quelle variable puis-je utiliser dans cette fermeture de rappel pour pointer vers l'instance de RustEditor? Je pourrais utiliser rust.editor (c'est un nom dans la portée globale) mais c'est un code malodorant.
Cela améliorerait votre réponse si vous expliquiez pourquoi cela doit se produire, à savoir, _this_ se rebondit lorsque le gestionnaire d'événements est appelé et donc vous devez capturer la référence à la classe au moment où l'objet est créé avec un variable qui conservera cette référence dans la fermeture. – tvanfosson
@tvanfosson - Merci pour votre suggestion. J'espère que cela ne vous dérange pas que je vous ai cité mot pour mot. Vous l'avez dit beaucoup mieux que moi – seth