gpt4 book ai didi

JavaScript 通过点击改变当前元素的颜色

转载 作者:太空宇宙 更新时间:2023-11-03 23:25:53 25 4
gpt4 key购买 nike

我有一个关于仅更改当前元素的颜色的问题。所以我想通过每次点击更改当前元素的背景颜色。

我的问题是,我无法重置前一个元素的背景颜色。

例如,我这里有两种背景颜色(黄色、浅蓝色),如果我单击“old div”和“new div”,那么两个 div 的背景颜色会变为绿色。但是只有一个 div 应该设置为绿色。

所以每次点击都只能改变当前元素的背景颜色。

JavaScript

var divTag = document.getElementsByTagName("div");

for (var i = 0; i < divTag.length; i++) {
if (divTag[i].tagName == "DIV" || divTag[i].tagName == "div") {
if (divTag[i].addEventListener) {
divTag[i].addEventListener('click', callback,false);
}
else if (divTag[i].attachEvent) {
divTag[i].attachEvent('on' + 'click',callback);
}
}
}

function callback(e) {
e = e || window.event;
var target = e.target || e.srcElement;
target.style.backgroundColor = "green";
e.stopPropagation();
}

HTML

<div id="old">
<input style="margin: 10px;" type="textbox" />
<div id="new"></div>
</div>

CSS

#old {
width:200px;
height:200px;
background-color:yellow;
}
#new{
width:20px;
height:20px;
background-color:lightblue;
}

你能帮帮我吗?提前致谢

最佳答案

如果您担心性能,您可以保存以前的并将其背景颜色重置为正常。

var prevDiv = null;

function callback(e) {
e = e || window.event;
var target = e.target || e.srcElement;
if(prevDiv) {
prevDiv.style.backgroundColor = '';
}
target.style.backgroundColor = 'green';
prevDiv = target;
e.stopPropagation();
}

http://jsfiddle.net/v6d6veyv/

关于JavaScript 通过点击改变当前元素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27044956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com