在此程序中,單擊任何框都會更改其顏色。不過,我希望點擊一個框時,其顏色會發生變化,但點擊另一個框時,其顏色應該改變,但第一個框的顏色應該消失(即返回原始狀態)。當另一個元素髮生事件時,從一個元素中移除更改?
從更廣泛的角度來看,一旦事件發生在另一個元素上,我如何才能將元素返回到其原始狀態。 (就像當我們添加CSS中:hover
效果會發生什麼,和元素返回其原始狀態時,我們從中取出鼠標)
編輯 - 我在原來的項目,我有很多的div類似點擊的效果。我想要一個通用方法,在一個元素上的事件導致從所有其他元素中刪除所有更改。
var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
div1.addEventListener("click", function() {this.style.backgroundColor="red";});
div2.addEventListener("click", function() {this.style.backgroundColor="red";});
div {
width: 100px;
height: 100px;
margin: 10px;
border: 1px solid black;
}
<html>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>
智能和有效的方法。 +1 – melancia
我試圖理解你的解決方案(我是一個初學者,不知道多少),是否已經從所有元素中刪除'.added'類,並且只添加到一個被單擊的元素? –
我首先刪除所有元素的活動,然後添加點擊 – mplungjan