javascript - 有没有办法不从 v-for 内的按钮中移除焦点?
问题描述
我有三个按钮,就像页面中的一个选项一样,当用户选择其中一个按钮时,背景颜色会通过 :focus on css 以及当用户单击运行功能并且不会重新加载页面但焦点的提交按钮时更改从所选按钮中删除并且背景颜色变回,尽管单击提交按钮,我如何保持按钮焦点?
<button class="btn btn-lg text-white mark-answers"
v-for="(item, index) in markAnswers" :key="index" v-on:click="answerMarked">
<span style="color: #000;"> {{ item.answer }} </span>
.mark-answers {
font-size: 23px !important;
font-weight: bold;
display:list-item !important;
background-color: #fb3;
width: 500px;
}
.mark-answers:hover {
background-color: #ffd98a;
}
.mark-answers:focus {
background-color:#f7f2ff;
}
解决方案
:focus
如果您需要在button
不再集中时保留此样式,则您不想设置该状态的样式。selected
但是,您可以根据您在 Vue 中的当前状态向按钮添加一个类,并设置它的样式。您可以使用条件类名称(item.marked
是状态中的选定值,不确定您目前使用的是什么):
<button
:class="{
'btn': true,
'btn-lg': true,
'marked': item.marked,
}"
v-for="(item, index) in markAnswers"
:key="index"
v-on:click="answerMarked"
>
<span style="color: #000;">{{ item.answer }}</span>
</button>
如果它是某种只能标记一个答案的测验形式,那么使用单选按钮 ( <input type="radio" />
) 可能会更好。您还可以label
按照您想要的任何方式设置它们(或更类似于它们)的样式。
推荐阅读
- netsuite - 从 Netsuite 装箱单 freemarker 访问包裹信息
- r - 行尾的额外逗号导致 read.csv 和 read.table 出错
- javascript - 可观察到的事件
- javascript - 当父状态改变时如何防止子组件重新加载
- iframe - 减小 iframe 大小
- npm - 为什么 npm install 不构建依赖项?
- python - 使用条件过滤器对 pandas groupby 进行矢量化
- javascript - 如何使用 ionic cordova 应用程序加密设备上的本地表单数据
- ruby - 如何在 ruby 模块中使用 method_missing 创建动态方法
- javascript - 如何使用按钮隐藏表格行