removeEventListener on anonymous functions in JavaScript
if you are inside the actual function, you can use arguments.callee as a reference to the function. as in:
button.addEventListener('click', function() { ///this will execute only once alert('only once!'); this.removeEventListener('click', arguments.callee);});
EDIT:This will not work if you are working in strict mode ("use strict";
)
I believe that is the point of an anonymous function, it lacks a name or a way to reference it.
If I were you I would just create a named function, or put it in a variable so you have a reference to it.
var t = {};var handler = function(e) { t.scroll = function(x, y) { window.scrollBy(x, y); }; t.scrollTo = function(x, y) { window.scrollTo(x, y); };};window.document.addEventListener("keydown", handler);
You can then remove it by
window.document.removeEventListener("keydown", handler);
A version of Otto Nascarella's solution that works in strict mode is:
button.addEventListener('click', function handler() { ///this will execute only once alert('only once!'); this.removeEventListener('click', handler);});