0

以下に、配列内の各配列の要素を作成するように設計された小さな JavaScript ファイルを示します。最後の関数を除いて、すべて正常に動作しremoveEventListeners()ます。この関数はエラーを返しませんが、単にリスナーを削除しません。

どんな助けにも本当に感謝します!ありがとう。

var array = [["Bob", 17, 1], ["Alan", 16, 1], ["Dave", 19, 1], ["Terry", 5, 1], ["Janet", 23, 0]];
var elements = [];
var AGE = 1;

function createHandler(i) {
  return function() {
    // Upon clicking the element show an alert with the age of that element (taken from array)
    alert(array[i][AGE]);
  }
}

for (var i = 0; i < array.length; i++) {
    elements[i] = document.createElement("div");
    elements[i].addEventListener("click", createHandler(i), false);
}

// This function is where the problem lies - it doesn't remove the handlers
function removeEventListeners() {
    for (var i = 0; i < elements.length; i++) {
        elements[i].removeEventListener("click", createHandler(i), false);
    }
}
4

1 に答える 1