css 如何使焦点属性一直保留到我单击另一个按钮

7qhs6swi  于 2023-02-17  发布在  其他
关注(0)|答案(2)|浏览(208)

我正在寻找一种方法,使“焦点”属性保持,直到我单击其他按钮之一。
通常情况下,即使我单击其他任何位置,焦点也会消失,但我需要它保持不变,除非我只单击其他按钮中的一个。
包含JavaScript的解决方案也可以接受,但前提是不使用库。

button:focus {
  color: red
}
<div class="example">
  <button>button 1</button>
  <button>button 2</button>
  <button>button 3</button>
  <button>button 4</button>
</div>
wnavrhmk

wnavrhmk1#

$("button").focusin(function(){
    $('button').css('color',''); // Remove Before set color to selected button
    $(this).css("color", "red"); // Set Color to Selected Button
});
button:focus {
  color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="example">
  <button>button 1</button>
  <button>button 2</button>
  <button>button 3</button>
  <button>button 4</button>
</div>
c9x0cxw0

c9x0cxw02#

注意:我假设你有先进的理解React在这里,如果你需要更多的解释,然后请评论!
如果使用REACT,则可以执行以下操作:
1.Map一个数组,该数组将创建按钮:
常量按钮Arr =[“按钮1”、“按钮2”等]
1.通过MAP方法返回按钮:
(buttonArr.map(el,idx)=〉{返回〈按钮{el} /按钮〉})
1.创建状态以保持所选按钮的索引:
常量[活动索引,设置活动索引] =React使用状态(0);
1.在按钮中创建ONCLICK,设置被点击按钮的索引:
onClick={()=〉设置活动索引(idx)}
1.在按钮内部创建IF条件MAP迭代的IF索引与状态索引匹配,然后应用类
〈按钮类别名称={活动索引=== idx?“类别名称1”:“类名称2”}
或者,你可以使用React导航条库,它会给点击的元素添加ACTIVE类,但是你必须设置React路由器基础设施,这对于像这样的小任务来说是不值得的。

相关问题