Javascript eventHandler中的该值等于窗口类型,而不是元素

Javascript eventHandler中的该值等于窗口类型,而不是元素,javascript,dom-events,event-listener,Javascript,Dom Events,Event Listener,我决定将onclickevents更改为事件侦听器,但遇到了一个问题。 案例a有效,案例b无效。调试器显示这等于窗口类型,而不是元素 testName.setAttribute("onclick", "toggleTestsWindow(this)"); // b testName.addEventListener("click", () => toggleTestsWindow(this)); 这是我通常编写事件侦听器的方式: //标识HTML元素 const mySp

我决定将
onclick
events更改为事件侦听器,但遇到了一个问题。 案例a有效,案例b无效。调试器显示这等于窗口类型,而不是元素

  testName.setAttribute("onclick", "toggleTestsWindow(this)");

  // b
  testName.addEventListener("click", () => toggleTestsWindow(this));

这是我通常编写事件侦听器的方式:

//标识HTML元素
const mySpan=document.getElementById(“mySpan”);
//每当“mySpan”收到单击事件时,调用“changeColor”
addEventListener(“单击”,更改颜色);
//定义“changeColor”`
函数更改颜色(事件){
//侦听器可以自动访问触发事件
//(为方便起见,我们称之为“活动”)
//事件的'target'属性为我们提供了元素,其中
//事件发生了
const targ=事件目标;
//对DOM进行一些可见的更改
if(target.classList.contains(“蓝色”)){
目标类列表。删除(“蓝色”);
}
否则{
目标类列表。添加(“蓝色”);
}
}
.blue{背景色:lightSkyBlue;}

单击我
不要对事件处理程序使用箭头函数。