その中にメソッドを持つオブジェクトがあります。これらのメソッドは、無名関数内のオブジェクトに配置されます。次のようになります。
var t = {};
window.document.addEventListener("keydown", function(e) {
t.scroll = function(x, y) {
window.scrollBy(x, y);
};
t.scrollTo = function(x, y) {
window.scrollTo(x, y);
};
});
(もっと多くのコードがありますが、これは問題を示すのに十分です)
次に、イベントリスナーを停止したい場合があります。したがって、私はremoveEventListenerを実行しようとしていますが、これを行う方法を理解できません。他の質問で、匿名関数でremoveEventListenerを呼び出すことは不可能であると読みましたが、これはこの状況の場合にも当てはまりますか?
無名関数内に作成されたメソッドがあり、それが可能だと思いました。このように見えます:
t.disable = function() {
window.document.removeEventListener("keydown", this, false);
}
なぜこれができないのですか?
これを行う他の(良い)方法はありますか?
ボーナス情報; これはSafariでのみ機能する必要があるため、IEサポートがありません。
(Elem.setUserData('eventListener', function(e){console.log('Event fired.');}, null);
userdataをanon関数に設定し、次にElem.addEventListener( 'event'、Elem.getUserData( 'eventListener')、false);を実行します。...およびremoveEventListenerについても同様です。よろしくお願いします。