単純なゲームアプリケーションでは、匿名のイベントコールバック関数にいくつかの引数を渡そうとしています。私はそれがコンテキストに合っている(そのスコープは引数を識別する)ので、匿名関数を使用してのみ行うことができます。問題は、ゲームに再起動するオプションがあることです。再起動すると、同じノードに新しいイベントリスナーが追加されます。古いイベントを推測すると、リスナーがまだ存在しているため、不適切な機能とオーバーロードされたアプリケーションが発生します。私が考えることができる解決策は、新しいものを追加する前に古いeventListenersを削除することによって "リフレッシュ"することです。しかし、イベントコールバック関数が匿名であると考えると、私は何の方法も見つけられませんでした。インライン匿名関数を使用する場合のイベントリスナーの削除
代替ソリューションは何ですか?
var adder = function(colorBox, num){
colorBox.addEventListener('click', function(){
eventCall(this, num);
});
}
var eventCall = function(t, num){
var clickedBox = t.style.backgroundColor;
....
カラーボックスからイベントリスナーを削除するには、この回避策を見 - http://stackoverflow.com/questions/19469881/remove-all-特定のイベントリスナー – vabii
私はそれを試しました..私はそれはいくつかの欠点を持っていると思います。 –