Javascript 为什么onclick只在第一次单击时工作,然后停止工作?
为什么当我第一次点击div元素时,它的工作状态和背景颜色都改变了,但第二次却没有改变 var Colors=[白色]; 功能转换颜色,id{ 如果颜色===白色{ 颜色=黑色; document.getElementByIdid.style.backgroundColor=黑色; }否则,如果颜色===黑色{ 颜色=白色; document.getElementByIdid.style.backgroundColor=白色; } }Javascript 为什么onclick只在第一次单击时工作,然后停止工作?,javascript,html,Javascript,Html,为什么当我第一次点击div元素时,它的工作状态和背景颜色都改变了,但第二次却没有改变 var Colors=[白色]; 功能转换颜色,id{ 如果颜色===白色{ 颜色=黑色; document.getElementByIdid.style.backgroundColor=黑色; }否则,如果颜色===黑色{ 颜色=白色; document.getElementByIdid.style.backgroundColor=白色; } } 不要以这种方式调用处理程序: onclick="c
不要以这种方式调用处理程序:
onclick="changeBack(Colors[0], 'box1')"
您可以简化为:
onclick="changeBack(this)"
在您的示例框1中,this关键字引用当前元素
要更改颜色,只需测试当前背景颜色的值:
功能转换元件{
var color=ele.style.backgroundColor | | |“白色”==“白色”?“黑色”:“白色”;
ele.style.backgroundColor=颜色;
}
div{
边框:厚实0000FF;
高度:100px;
}
因为您总是使用颜色[0]调用函数,而颜色[0]总是白色的,所以您总是在代码中通过if color===白色路径。您正在强制使用白色!但是在if语句中,它是否变为黑色?传递给函数的参数永远不会改变。
onclick="changeBack(this)"