javascript - 每次点击改变背景
问题描述
我的问题是,当我点击 TR 标签时,它会显示一种颜色,当我再次点击时,背景颜色会消失,到目前为止一切都很好。但是当我再次点击时,颜色不显示问题出在哪里??
function getRandomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
$('.tr').click(function() {
$('.tr').css("background-color", "");
$(this).css({
"background-color": getRandomColor()
});
$(this).click(function() {
$(this).css("background-color", "initial");
});
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="css/style.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
</head>
<body>
<table class="table table-bordered table-hover w-99">
<tbody>
<tr class="tr">
<td>654</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
</body>
</html>
解决方案
刚刚删除了一些代码并添加了 cssuser-select: none;
以防止多次单击后选择文本。
function getRandomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
$('.tr').click(function() {
console.log(getRandomColor())
$('.tr').css("background-color", getRandomColor());
})
td {
user-select: none;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="css/style.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
</head>
<body>
<table class="table table-bordered table-hover w-99">
<tbody>
<tr class="tr">
<td>654</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
</body>
</html>
提示:当背景太暗时,请注意将字体颜色切换为白色。也许有一个 jQuery 方法来检测对比度。
推荐阅读
- android - 错误 MSB4064:“XamarinDownloadArchives”任务不支持“AllowUnsecureUrls”参数
- mysql - 复合键 - 自动增量问题 / InnoDB MySQL 表
- c# - Azure 服务总线规则名称最大长度
- jquery - Jquery在输入的每两个字符更改时调用一个函数
- javascript - findOneAndUpdate 仅提供部分更新
- c++ - 删除全局隐式函数 - 避免模棱两可的运算符
- angular - Twin 订阅 block forkJoin 订阅
- sql - 如何根据分组将字符串组合在一列中
- rest - 搜索与特定名称值匹配的子项
- openedx - 打开 edx 登录或 SSO 实施问题