javascript - 单击时连续滚动颜色
问题描述
我想通过单击 li 元素滚动 3 种不同的颜色。(这只会改变每个单独的 li 元素)。
$(document).ready(function(){
$("li").click( function() {
$("li").css("color", "red", "green", "black");
});
});
解决方案
使用一个数组来保存颜色值和一个数据属性来保存颜色在数组中的位置。
$(document).ready(function() {
let colors = ["red", "green", "black"];
$('li').click(function() {
// cache the element reference
let $this = $(this);
// get count value if not found then set to 0
let c = $this.data('count') || 0;
// set color based on count value
$this.css("color", colors[c]);
// update count value
$this.data('count', ++c % colors.length);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>sss</li>
<li>sss</li>
<li>sss</li>
<li>sss</li>
<li>sss</li>
<li>sss</li>
<li>sss</li>
<li>sss</li>
</ul>
推荐阅读
- mysql - mysql 插入触发器仅在不重复的情况下
- gcc - 两次 mov 后内存寄存器系统崩溃
- c# - 仅将更新的文件上传到 Blob 存储
- android - Spinner 不会从 Firebase 数据库中检索任何数据
- json - 如何将本地 JSON 模型绑定到 SAPUI5 中的 MultiComboBox?
- android - Camera2 api单击单击多个图像
- python-3.x - 尝试将数据发送到数据库时出现 Scrapy ItemLoader 错误
- excel - VBA Word/excel 宏在后台使用 DeepL.com 翻译文本
- android - 如何从 Retrofit 调用 dotnet api?
- angular6 - angular6中的aws s3存储桶图像上传有问题