for循环中的Javascript click事件无效?

时间:2018-03-12 12:23:56

标签: javascript

function albumCoverDisplay() {

  var i = 0;

  for (i = 0; i < albumCover.length; i++) {

    albumCover[i].addEventListener("click", function() {

      for (var i = 0; i < albumCover.length; i++) {

        albumInfo[i].style.display = "none";

      }

      albumInfo[i].style.display = "block";

    });

  }

}

1 个答案:

答案 0 :(得分:2)

您希望能够在点击其中一个时隐藏其他 albumCover元素

有几个错误

  • 您的内部for循环重新定位i 的范围,使用不同的变量
  • 我的值(假设在内部for循环中使用另一个变量)在点击发生时将不会保持相同。

成功

function albumCoverDisplay() 
{
  for (let i = 0; i < albumCover.length; i++)  //use let instead of var
  { 
    albumCover[i].addEventListener("click", function() {
      for (var j = 0; j < albumCover.length; j++) 
      {
          albumInfo[j].style.display = "none";
      }
      albumInfo[i].style.display = "block";
    });
  }
}