Если вы добавляете событие с addEventListener()
, вы должны иметь ссылку на эту функцию, чтобы иметь возможность впоследствии удалить его.
С анонимной функцией, которая возможна только с arguments.callee
, и только тогда, когда вы находитесь внутри самой функции:
element.addEventListener('click', function() {
this.style.backgroundColor = '#cc0000';
this.removeEventListener('click', arguments.callee);
}, false);
но учтите, что в ES5 "строгий режим" это недопустимо.
Следовательно, было бы лучше дать вашему обратному вызову имя, а затем использовать его при вызове removeEventLister()
:
element.addEventListener('click', function cb() {
this.style.backgroundColor = '#cc0000';
this.removeEventListener('click', cb);
}, false);
Демо на http://jsfiddle.net/alnitak/RsaVE/