Javascript 当创建多个onmouseover事件时,它们会一直“覆盖”前一个事件,直到代码只识别最后一个事件

Javascript 当创建多个onmouseover事件时,它们会一直“覆盖”前一个事件,直到代码只识别最后一个事件,javascript,html,css,Javascript,Html,Css,所以我试图创建一个表格,如果鼠标在表格中的一个单元格上,背景颜色就会改变。这个表相当大,8 x 19,所以我正在动态创建它。这是我的全部代码 测验 身体{ 颜色:红色; } 桌子 th, tr{ 边框:2件纯黑; 宽度:10vw; } -> 函数createSchedulingTable{ var scheduling=document.getElementByIdscheduling; var firstrow=document.createElement'tr'; var类别=[‘时间’、

所以我试图创建一个表格,如果鼠标在表格中的一个单元格上,背景颜色就会改变。这个表相当大,8 x 19,所以我正在动态创建它。这是我的全部代码

测验 身体{ 颜色:红色; } 桌子 th, tr{ 边框:2件纯黑; 宽度:10vw; } -> 函数createSchedulingTable{ var scheduling=document.getElementByIdscheduling; var firstrow=document.createElement'tr'; var类别=[‘时间’、‘S’、‘M’、‘T’、‘W’、‘R’、‘F’、‘Sa’]; 对于var a=0;a<8;a++{ var th=document.createElement'th'; th.innerHTML=类别[a]; 第一排,第二排; } scheduling.appendChildfirstrow; 对于var a=0;a<18;a++{ var therow=document.createElement'tr'; therow.innerHTML=a+7+':00'; 如果a+7==24{ therow.innerHTML='0:00'; } 对于var b=0;b<7;b++{ var th=document.createElement'th'; th.id='单元'+a+','+b; th.onmouseinter=函数{ 高亮度; }; th.onmouseout=函数{ 去高亮度; }; th.innerHTML='cell'; 附肢儿童; } scheduling.appendChildtherow; } } 创建调度表; 功能高亮元件{ //警报“突出显示”+此.id; element.style.background='yellow'; } 功能发光元件{ //警报“突出显示”+此.id; element.style.background='white'; } onmouseover是一个方法,当您再次定义它时,它将被覆盖

可以使用addEventlistener绑定事件

element.addEventlistener('mouseover', function(){
  //...
});

使用let而不是var来声明th变量。我可能错了,但我认为您需要在for循环的范围之外创建函数?尝试th.onmouseinter=highlightth@非常感谢你。为什么会这样呢?var是函数作用域,let是block作用域的可能重复,虽然这是真的,但这不是问题所在。我很困惑。。。作品标题与问题不符。OP更新了吗?不,标题不匹配,因为OP对实际问题感到困惑。