【发布时间】:2018-02-09 00:36:01
【问题描述】:
我有几个红色和黑色按钮,我想将 'onmousedown' 和 'onmouseup' 事件添加到共享同一类的一组红色按钮(“按钮红色”)中。
onmousedown 我要更改添加类“opaque”,然后 onmouseup 再次删除它。
因此,onmousedown 已“选中”的红色按钮略微透明,而 onmouseup 恢复正常(红色)。其他按钮不受影响。
css
.button {
background-color: black;
color: white;
height: 30px;
width: 150px;
text-align: center;
}
.button.red {
background-color: red;
}
.button.red.opaque {
opacity: 0.7;
}
javascript(到目前为止)
var classname = this.document.getElementsByClassName("button red");
for (var i = 0; i < classname.length; i++) {
classname[i].addEventListener('onmousedown', classList.add("opaque"), false);
classname[i].addEventListener('onmouseup', classList.remove("opaque"), false);
}
【问题讨论】:
-
欢迎来到 Stack Overflow,您的问题应包含a Minimal, Complete, and Verifiable example。 FWIW 你可以用 CSS 做到这一点。你用 JS 做这件事有什么原因吗?
-
你能添加你的 HTML
-
您的选择器错误。
.button red opaque查找作为<red>元素(不是类)的后代的<opaque>元素(不是类),这些元素是使用button类的元素的后代。应该是.button.red.opaque。与您的.button red选择器相同。 -
"button red"不是类的有效名称。getElementsByClassName不支持同时选择多个类名,请使用querySelectorAll()和适当的 CSS 选择器。而.button red opaque表示<opaque>节点内的<red>节点内的某个节点内的类button。你的意思可能是.button.red.opaque -
getElementsByClassName确实支持多个类名:developer.mozilla.org/en-US/docs/Web/API/Document/…
标签: javascript jquery css addeventlistener