Andrew Poulos wrote:
Interaction = function() {
This should be
let Interaction = function () {
...
};
Interaction.prototype.action = function() {
let me = this;
This workaround is not necessary if you are using Function.prototype.bind() anyway, although referring to the “this” value by “me” instead of “this”
might be more efficient.
...
document.addEventListener('keydown', me.action.bind(me));
Change this line to
let keyDown = me.keyDown = me.action.bind(me);
document.addEventListener('keydown', keyDown);
or something similar,
};
Interaction.prototype.reaction = function() {
let me = this;
...
document.removeEventListener('keydown', me.action.bind(me));
and this line to
document.removeEventListener('keydown', me.keyDown);
respectively.
You should consider whether the document object really is the right object
to listen to the event, or if, for example, the object referred to by “document.body” is more appropriate. In general, you should add event listeners for bubbling events as deep in the DOM tree as is feasible,
to avoid unwanted side effects.
};
but when 'reaction' gets called the 'keydown' event listener doesn't get removed. How can I remove the event listener within 'reaction'?
It is perhaps a good idea to define a method that handles the “keydown” event (listener) exclusively for the instance that inherits that method.
--
PointedEars
FAQ: <
http://PointedEars.de/faq> | <
http://PointedEars.de/es-matrix> <
https://github.com/PointedEars> | <
http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)