【发布时间】:2020-08-28 04:34:23
【问题描述】:
我有多个 div,当单击它们时会添加一个边框并将它们放大一点。我正在使用 foreach 遍历所有元素,单击时我删除了每个元素的边框和缩放属性,但单击的元素除外,我在其中添加了边框和缩放。 我的代码完全合乎逻辑并且应该可以工作,但由于某种原因我似乎无法理解,它只将样式应用于单击的元素,而不是从其余元素中删除(就像我的代码所说的那样)。
JS
document.querySelectorAll('.projcolorpick div').forEach(el => {
el.onclick = (e) => {
el.style.border = "none"
el.style.transform = "scale(1)"
e.target.style.border = "2px solid #fff"
e.target.style.transform = "scale(1.2)"
projcolor = e.target.style.background
}
})
}
【问题讨论】:
-
您正在为每个元素添加一个单独的事件侦听器。监听器触发了单击的 el 上的 annon 函数...我看不到任何关于更改每个事件监听器之外的元素的比例...如果我理解正确的话。
-
那么每次我点击一个元素时如何删除所有其他元素的样式?
标签: javascript loops foreach nodelist