jquery - 仅将颜色应用于我单击的框
问题描述
我想将颜色应用于标签 colorCheckBox,它们都有唯一的数据 ID,数据 ID 来自colorBoxId = $(this).closest('tr').data('id');
全局变量。问题在于,它不是一次只为一个标签添加颜色,而是同时为所有标签添加颜色。我有一张关于问题的图片 在
此处输入图片描述
当我单击标签时,这个 div 将显示
<div class="colorList" id="colorSelectFilter" style="display:none; padding: 20px;">
<a href="#" data-value="1">Grön(Godkännn)<div class="greenBox"></div></a>
<a href="#" data-value="2">Röd(Slå av)<div class="redBox"></div></a>
<a href="#" data-value="3">Gul(Kontrollera)<div class="yellowBox"></div></a>
</div>
然后当我点击 colorSelectFilter 这发生在 jquery
const colors = [null, 'green', 'red', 'yellow'];
$("#colorSelectFilter").find('a').click(function(event){
event.preventDefault();
const filter = parseInt($(this).data('value'));
alert(colorBoxId + "Ska skickas till ajax!!");
// Skapa en variabel utan för med noll som värde
// som vi sen ska fylla med id från respektive id
// SOm vi sen skickar iväg med ajax
var totalColor = colors[filter];
console.log(colors[filter] + "ErrandSelect");
if (!isNaN(filter)) {
// This is the problem; it adds color
$('.colorCheckBox').css('background-color', colors[filter]);
}
});
我想要的是只在我点击的标签上添加一种颜色。任何指针都会很好。
解决方案
event
回调函数中的参数有一个名为的属性,该属性target
引用被单击的元素,您可以通过 jQuery 函数传递它以使用 jQuery 处理它,请参见下面的示例。
$('.foo').click(event => {
$(event.target).css('color', 'red');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="foo">Div #1</div>
<div class="foo">Div #2</div>
<div class="foo">Div #3</div>
推荐阅读
- laravel - 如何将文件上传保存在本地文件夹 Laravel
- php - 使用 Docker 时,SOAP 无法解析 SSL 请求
- verilog - Verilog 中的 4 位 SR 锁存器
- java - 使用杰克逊从字符串反序列化 LocalDateTime
- express - 在 Actions on Google 中使用 Express 中间件
- r - 使用 Rstudio 运行多个 exe 文件
- ignite - 在多个节点上配置 Apache Ignite 集群
- javascript - 水平多个 Div - 滑动打开/关闭 Div
- python - 无法使用反卷积层训练 VAE
- mysql - 如何在 AWS 中查找 MySQL 数据库