私はユーザーのクリックが青いボタンか赤いボタンのいずれかである単純なスクリプトの作成に取り組んでいます。青いボタンがクリックされると、ユーザーがクリックすると消えてしまい、うまくいきます。しかし、ユーザーが赤いボタンをクリックすると、青色のフェードアウトが停止します。私が言ったように、青のボタンは動作しますが、赤のボタンは動作しません。removeEventListenerが機能しないのはなぜですか?
ここや他のサイトのさまざまな質問と回答を見ると、私が持っているコードは正しいと思うし、それがうまくいかない理由は一致しない、つまり実際にはイベントを追加します。
私が持っているコードは以下であり、任意の助けいただければ幸い、私は内のコードには、Adobeアニメーションを使用しています:あなたは2つの選択肢を持っている要素の削除イベントリスナーのために
instance = this;
instance.stop();
//Buttons array
var lowerQuestions = [instance.BTN1, instance.BTN2, instance.BTN4];
//Add an event listener to each button in the array
addEventListeners();
function addEventListeners(){
lowerQuestions.forEach(function(element) {
element.addEventListener("click", function(){
console.log('add listener');
addButtonValue(element);
},false);
});
}
//Remove event listeners when BTN3 is clicked
instance.BTN3.addEventListener("click", removeEventListeners)
function removeEventListeners(){
console.log('prevent');
lowerQuestions.forEach(function(element) {
element.removeEventListener("click", function(){
console.log('remove listener');
addButtonValue(element);
//console.log('hit me here');
},false);
});
}
//Event listener function
function addButtonValue(element){
instance.addEventListener("tick", fadeOut);
element.alpha = 1;
function fadeOut(){
element.alpha -= 0.15;
if(element.alpha <= 0){
instance.removeEventListener("tick", fadeOut);}
}
}
可能な重複[です無名関数
この場合、簡単な解決策は、標準的な名前の関数宣言を使用してリスナーを作成することですremoveEventListenerを処理することができますか?](http://stackoverflow.com/questions/36637197/are-anonymous-functions-able-to-handle-removeeventlistener) – yezzz