jquery - 如何在按钮单击时切换按钮的值和类
问题描述
我有 4 个按钮,我只希望一个按钮被明显选中,而另外 3 个按钮明显不被选中。
<td width=10%><button class="stuck unstuck" name="doR1" id="doR1" onclick="doR('1');">AP Enquiry</button></td>
<td width=10%><button class="stuck unstuck" name="doR2" id="doR2" onclick="doR('2');">HM Enquiry</button></td>
<td width=10%><button class="stuck unstuck" name="doR3" id="doR3" onclick="doR('3');">Ac/Rj Pgm</button></td>
<td width=10%><button class="stuck unstuck" name="doR4" id="doR4" onclick="doR('4');">Property Enq</button></td>
我可以使用
$(".stuck").click(function(event){
event.preventDefault()
$(this).toggleClass('unstuck');
});
但这还不够,因为我只想更改单击的最新按钮的类,此代码将允许我更改所有按钮的类。我还想仅更改最新选择的值。特定值无关紧要,只要它在 2 个值之间切换,所选按钮为一个值,所有其他按钮为另一个值。
Jbap
解决方案
从您的评论中:
我想更改该值,以便在执行另一个操作时,它会检查按下哪个按钮,以便可以根据按下哪个按钮来执行某些操作。有点像一个巨大的收音机选择。
在这种情况下,将不同的类添加到按钮而不是更改它的类会更简单value
,因为它是静态的。当后面的动作发生时,您可以通过将类放在选择器中找到活动按钮,如下所示:
$(".stuck").click(function(e) {
e.preventDefault()
$(this).toggleClass('unstuck');
$(this).addClass('active');
$('.stuck').not(this).removeClass('active');
});
$('a').click(function(e) {
e.preventDefault();
console.log($('button.active').prop('id') || 'Nothing selected');
});
.active {
color: #C00;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td width="10%"><button class="stuck unstuck" name="doR1" id="doR1">AP Enquiry</button></td>
<td width="10%"><button class="stuck unstuck" name="doR2" id="doR2">HM Enquiry</button></td>
<td width="10%"><button class="stuck unstuck" name="doR3" id="doR3">Ac/Rj Pgm</button></td>
<td width="10%"><button class="stuck unstuck" name="doR4" id="doR4">Property Enq</button></td>
</tr>
</table>
<a href="#">Click me</a>
推荐阅读
- centos7 - ceph 模块 'restful' 依赖失败 没有名为 'pecan' 的模块
- asp.net-mvc - 为 MVC 自定义列寻找非常动态的用户驱动的 Web 表/网格
- neovim - Signcolumn 覆盖 neovim 中的数字
- python - 从 Windows 服务内部设置环境变量
- python - 将参数作为字典传递给 add_argument
- python - 如何调用文本文件中的第一行,但它会将其转换为搬运工词干分析器?
- python - 尝试按条件过滤,但得到一个空数据框
- reactjs - Redux 在 React Native 中返回 Promise 而不是 Pure Object
- r - 在 R 中使用时间戳转换日期
- javascript - 无法在 chime sdk 单一 js 中集成语音焦点