【发布时间】:2022-01-13 20:14:02
【问题描述】:
我有许多使用“按钮”标签创建的按钮。当我单击它时,我正在使用 :focus Selector 将按钮的颜色从另一种颜色更改为黄色。
现在,我有 Javascript 代码可以做同样的事情(改变按钮的背景颜色),唯一的区别是它连接到输入。
这是一个例子:
function coloringButton() {
let myInput = document.getElementById("numbers");
let lastChar = myInput.value.slice(-1);
switch (lastChar) {
case '1':
document.getElementById("Two").style.backgroundColor = 'gray';
document.getElementById("One").style.backgroundColor = 'yellow';
break;
case '2':
document.getElementById("One").style.backgroundColor = 'gray';
document.getElementById("Two").style.backgroundColor = 'yellow';
break;
}
}
#One,
#Two {
background-color: gray;
}
#One:focus,
#Two:focus {
background-color: yellow;
}
<input type="text" id="numbers" name="numbers" autocomplete="off" onkeyup='coloringButton()'>
<button type="button" id='One'>
<span>1</span>
</button>
<button type="button" id='Two'>
<span>2</span>
</button>
当我首先单击按钮时,:focus 正在工作。 我的问题是,在使用输入(输入字符输入)运行 javascript 代码后,如果我尝试单击某个按钮,则 :focus 选择器不再工作。 是否有一个选项可以使 :focus 效果在该 javascript 代码之后恢复工作,而不使用 javascript 的 onclick 事件?
【问题讨论】:
-
明确添加到
.style属性的样式优先于 CSS 中的样式。
标签: javascript css css-selectors