addEventListener()
でイベントを追加する場合は、その機能を参照して後で削除する必要があります。
element.addEventListener('click', function() {
this.style.backgroundColor = '#cc0000';
this.removeEventListener('click', arguments.callee);
}, false);
が、これはES5「strictモード」では合法ではないことに注意してください:あなたは関数自体の中にいる間だけ、その後
arguments.callee
でのみ可能だ無名関数で
、と。
したがって、ちょうどあなたのコールバックの名前を与えると、そのremoveEventLister()
への呼び出しで使用する方がよいでしょう:
element.addEventListener('click', function cb() {
this.style.backgroundColor = '#cc0000';
this.removeEventListener('click', cb);
}, false);
デモhttp://jsfiddle.net/alnitak/RsaVE/
もう本当に匿名ない
イベントリスナーのリストを取得する際の関連する質問:http://stackoverflow.com/questions/7810534/have-any-browsers-implemented-the-dom3-eventlistenerlist/7814692#7814692 – user123444555621