首页
学习
活动
专区
圈层
工具
发布

在多次单击jquery后更改多个按钮的颜色

jQuery 多次点击后更改多个按钮颜色解决方案

基础概念

在 jQuery 中处理多个按钮的点击事件并改变它们的颜色,涉及到事件处理、DOM 操作和状态管理。当用户多次点击按钮时,我们需要跟踪每个按钮的状态并相应地改变其样式。

解决方案

以下是完整的解决方案代码:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
    <title>多按钮点击变色</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        .btn {
            padding: 10px 20px;
            margin: 5px;
            border: none;
            cursor: pointer;
            background-color: #f0f0f0;
        }
        .active {
            background-color: #4CAF50;
            color: white;
        }
        .inactive {
            background-color: #f44336;
            color: white;
        }
    </style>
</head>
<body>
    <button class="btn">按钮1</button>
    <button class="btn">按钮2</button>
    <button class="btn">按钮3</button>
    <button class="btn">按钮4</button>

    <script>
        $(document).ready(function() {
            // 为所有按钮添加点击事件
            $('.btn').click(function() {
                // 获取当前按钮的点击次数数据属性
                let clickCount = $(this).data('click-count') || 0;
                clickCount++;
                $(this).data('click-count', clickCount);
                
                // 根据点击次数改变按钮样式
                if (clickCount % 3 === 0) {
                    $(this).removeClass('active').addClass('inactive');
                } else if (clickCount % 3 === 1) {
                    $(this).removeClass('inactive').addClass('active');
                } else {
                    $(this).removeClass('active inactive');
                }
            });
        });
    </script>
</body>
</html>

代码说明

  1. HTML 结构:创建了多个具有相同类名 btn 的按钮
  2. CSS 样式:定义了按钮的默认样式和两种状态样式(active 和 inactive)
  3. jQuery 逻辑
    • 为所有 .btn 元素绑定点击事件
    • 使用 data() 方法存储每个按钮的点击次数
    • 根据点击次数的模3结果改变按钮样式:
      • 第一次点击:添加 active 类(绿色)
      • 第二次点击:移除所有状态类(恢复默认)
      • 第三次点击:添加 inactive 类(红色)
      • 第四次点击:循环回到第一次的状态

变体方案

如果需要不同的行为模式,可以修改条件判断部分。例如:

代码语言:txt
复制
// 交替切换两种状态
$('.btn').click(function() {
    $(this).toggleClass('active inactive');
});

// 循环切换多种颜色
$('.btn').click(function() {
    const colors = ['red', 'green', 'blue', 'yellow'];
    let currentColor = $(this).data('current-color') || 0;
    currentColor = (currentColor + 1) % colors.length;
    $(this).data('current-color', currentColor);
    $(this).css('background-color', colors[currentColor]);
});

常见问题及解决

  1. 问题:点击事件不生效
    • 原因:可能 jQuery 库未正确加载或选择器错误
    • 解决:检查 jQuery 引入路径,确保 DOM 加载完成后再绑定事件
  • 问题:按钮状态混乱
    • 原因:可能未正确清除之前的类
    • 解决:在添加新类前先移除相关类(如示例中的 removeClass
  • 问题:性能问题(按钮数量很多时)
    • 解决:使用事件委托
    • 解决:使用事件委托

这个解决方案提供了灵活的方式来处理多个按钮的点击状态变化,可以根据实际需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JQuery入门

,把单击响应函数作为click()的参数传入即可重点3: 核心函数$ ()的四种用法 1.传入参数为函数时,文档加载完成就执行该函数 2.传入参数html字符串时,根据这个字符串创建元素节点对象---...因此我们需要用数组下标去取出来 按钮变色小案例 选择器 多个属性选择器并排写,选取结果为取交集。...子元素过滤器里面nth-child(2n-1),这里的n是从1开始取值 表单里面的button标签,会被默认作为submit提交按钮 jquery里面提供的增强for循环.each方法 对选择器的小总结...id="b4">将Jquery对象转化为dom对象,改变颜色 ---- 选择器 多个属性选择器并排写,选取结果为取交集。...for循环.each方法 ---- 对选择器的小总结 选择器的小总结 ---- 元素筛选方法----对选择器筛选后的方法,再次进行筛选 ---- jQuery选择器总结(选择器+元素筛选) jQuery

5.4K20
  • WEB入门之十四 jQuery事件

    下面我们实现一个通过焦点事件改变文本框背景颜色的示例,首先用以前的普通方式实现,参考代码如下所示。...添加过两个商品后,表格中一共有3行数据,第1行是原本存在的,后两行是动态创建并添加到表格上的。现在单击表格中的行,我们会发现只有第1行的背景色可以改变,后两行的背景色没有改变。...把bind换成live后,表格中的任何一行在单击时都可以改变背景色,包括动态创建的行。...一次移除多个事件,中间用空格隔开 $("p").die("click mouseover"); //移除段落元素的鼠标单击事件和鼠标悬浮事件 5.4.3 ​on和off​ on是jQuery 1.7...,然后单击按钮时分析出用户的出生日期。

    1.1K10

    WEB入门之十四 jQuery事件

    下面我们实现一个通过焦点事件改变文本框背景颜色的示例,首先用以前的普通方式实现,参考代码如下所示。...添加过两个商品后,表格中一共有3行数据,第1行是原本存在的,后两行是动态创建并添加到表格上的。现在单击表格中的行,我们会发现只有第1行的背景色可以改变,后两行的背景色没有改变。...把bind换成live后,表格中的任何一行在单击时都可以改变背景色,包括动态创建的行。...一次移除多个事件,中间用空格隔开 $("p").die("click mouseover"); //移除段落元素的鼠标单击事件和鼠标悬浮事件 5.4.3 on和off on是jQuery 1.7版本中新增的函数...,多个事件用空格隔开 data:该参数可选,表示事件发生时通过event对象传递的值 fn:表示事件发生时的处理函数 下面我们通过一个示例来演示on函数的用法,该示例让用户输入自己的身份证号,然后单击按钮时分析出用户的出生日期

    1K10

    Google Earth Engine (GEE) ——Earth Engine Explorer (EE Explorer)使用最全解析(8000字长文)

    要返回更远的时间,或选择特定日期范围,请单击时间滑块下方的跳转到日期链接,然后使用日历界面选择日期。尝试选择不同的季节以查看地图的更显着变化。 选择要使用的日期范围后,单击“保存”按钮保存图层设置。...如果您希望返回之前的设置,请单击取消按钮。如果不保存就关闭图层设置,图层显示属性将恢复到以前的状态。 添加多个图层 通过添加其他数据集,您可以一次查看地图上的多个数据图层。...单击波段选择下拉菜单并选择一个不同的波段以显示为灰度。 选择新波段后单击保存按钮,您将看到地图显示从彩色变为灰度。您选择的波段现在表示为从黑色(低反射率)到白色(高反射率)的颜色渐变。...请注意,您可以通过单击应用按钮来预览更改,这将更改地图以反映您的更改,同时保持图层设置对话框打开并准备好进行调整。...单击保存按钮将更改应用到地图图层显示并关闭图层设置。您应该会看到植被颜色从绿色变为红色的戏剧性变化。 对比度、亮度和不透明度 数据范围 可以使用范围(最小值和最大值)和伽玛参数调整图像的对比度和亮度。

    2.2K10

    Wijmo 更优美的jQuery UI部件集:爱上 ThemeRoller

    Wijmo 是一个基于jQuery UI的UI部件的套件。Wijmo最方便使用的特点之一就是兼容ThemeRoller。...ThemeRoller 是一个创建独特的jQuery UI web 部件主题皮肤的web应用程序。...因此我们要点击“Gallery”选项卡,单击“编辑”来编辑我们选择的主题。在本教程中,我们要点击“Hot Sneaks”主题下的“编辑”按钮。...除此之外,我们也可以尝试使用颜色拾取器,直到你发现合适的颜色深浅。无论采用哪种方式,它最终应当看起来有点像这个样子: ? 看起来不错,不是吗?...接下来,既然已经到这儿了,我们不妨继续一并更改可点击区域活动状态的文本和图标。在“Text”字段输入“#f1f23a”在“Icon”字段输入“#b0f22c”。 ? 效果出来了,相当漂亮: ?

    1.4K70

    硬核解析,巧用案例学习jQuery框架三种事件绑定方式

    在jquery框架的使用中,难免会遇到按钮或文本框等各种各样的要求要进行相应事件的绑定操作,进行事件的绑定能够增加页面的交互效果,相信在html和js中进行事件的绑定大家都不陌生,那么今天我就来和小伙伴们分享一下利用...中的事件切换方法可以实现方法中定义的多个事件的循环触发。...当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2…依次执行下去,当执行完之后会重新从第一个事件开始执行。...方法,并修改div的背景颜色 代码如下: <!...,再次点击红色 效果如下: 以上就是jQuery框架中实现事件绑定的三种方式, 有问题的小伙伴记得在评论区留言提出!

    2.4K10

    Github项目推荐 | SC-FEGAN:基于GAN的人脸照片涂鸦编辑

    (使用用户的草图和颜色进行面部编辑生成对抗网络,可添加/更改耳环,眼镜,发型,酒窝等) by Youngjoo Jo, Jongyoul Park 《SC-FEGAN: Face Editing Generative...只填充已擦除的区域。 GUI中的按钮: Open Image :打开要编辑的图像并重置草图和颜色。 Mask :单击此按钮并在左侧查看器上绘制蒙版。...Sketches :单击此按钮并在左侧查看器上绘制素描线。 Color :单击此按钮并绘制颜色线。 如果您第一次单击此按钮,则必须从调色板中选择颜色。 Palette :单击此按钮可更改颜色。...如果选择颜色,则单击“颜色”按钮进行更改。 Save Img :单击此按钮可保存更改后的图片。 将以'name.jpg'的方式保存。 Arrange :安排编辑工作。...单击“Arrange”按钮。 4. 在蒙版区域上绘制颜色。 5. 单击“Complete”。 示例 面部编辑 ? 耳环编辑 ? 面部修复 ? 面部修复(只有草图和颜色) ?

    3K40

    Github项目推荐 | SC-FEGAN:基于GAN的人脸照片涂鸦编辑

    Github项目推荐 | SC-FEGAN:基于GAN的人脸照片涂鸦编辑 (使用用户的草图和所选颜色进行面部编辑生成对抗网络,可添加/更改耳环,眼镜,发型,酒窝等) by Youngjoo Jo, Jongyoul...只填充已擦除的区域。 GUI中的按钮: Open Image :打开要编辑的图像并重置草图和颜色。 Mask :单击此按钮并在左侧查看器上绘制蒙版。...Sketches :单击此按钮并在左侧查看器上绘制素描线。 Color :单击此按钮并绘制颜色线。 如果您第一次单击此按钮,则必须从调色板中选择颜色。 Palette :单击此按钮可更改颜色。...如果选择颜色,则单击“颜色”按钮进行更改。 Save Img :单击此按钮可保存更改后的图片。 将以'name.jpg'的方式保存。 Arrange :安排编辑工作。...单击“Arrange”按钮。 4. 在蒙版区域上绘制颜色。 5. 单击“Complete”。 示例 面部编辑 ? 耳环编辑 ? 面部修复 ? 面部修复(只有草图和颜色) ?

    2.1K10

    办公技巧:10个WORD神操作,值得收藏!

    然而很多时候对一份word文档进行多次修改,且很多人不善于使用“审阅”中的“修订”功能,导致文档被修改过很多次后想查找对哪些细节进行过修改比较麻烦。这是“比较”功能的位置。...4 巧用替换功能 删除多余空行 打开“编辑”菜单中的“替换”对话框(可以用Ctrl+H哦),把光标定位在“查找内容”输入框中,单击“高级”按钮,选择“特殊格式”中的“段落标记”两次,在输入框中会显示“^...使用通配符来搜索多个单词。...首先要将“嵌入型”更改为其他环绕类型 要拖动图形,请单击选中它,然后将它拖动到需要的位置。当然,我们也可以微移选中的浮动图形,选中图形后使用光标键从任意4个方向微移它。...Word2010操作更简便哦,选中图片,单击格式选项卡,点击位置按钮,就搞定啦。

    4.9K10

    Figma技巧超全合集!40+隐藏技能!快收藏!(第一辑)

    需要注意:Windows 中 Cmd 为 Ctrl,Option 为 Alt 01.按住CMD裁剪图像 您可以通过单击 Cmd 按钮来裁剪图像。...04.CMD后按数字键(改变不透明度) 选择一个元素并单击 cmd 按钮后,您可以通过单击 1 和 9 之间的按钮来更改不透明度。(键 1 为 10%,键 9 为 90%)。你可能知道这一点。...06.组织整理:批量选择元素整理后,可以通过光标调整左右上下空间。此外,可以在不扰乱顺序/比例的情况下相互更换元件。 07.拖动+空格:如果要更改所选区域的位置,可以在选择区域后使用空格键。...您还可以通过单击框架、矩形等来放置照片。 15.颜色选择:让我们选择一个可以填充颜色的元素。在元素中选择填充选项后,您可以使用向上(浅色)和向下(深色)箭头键找到颜色的浅色调和深色调。...此时我们可以应用一个小技巧:我们可以通过双击文本框的任意边缘将文本从自动高度更改为自动宽度。 17.快速定位元素 在大文件中,不少元素很难在画布上找到。我们可以在左侧图层面板中找到它们。

    3.9K30

    【jQuery动画】显示与隐藏效果

    fn:在动画完成时执行的函数。 实现效果 当点击“显示”,则div中的内容会显示,并弹出提示框,点击“隐藏”则隐藏内容,弹出提示框,点击“切换”,则会在二者之间切换。...HTML、CSS部分 思路: 1、定义显示、隐藏、切换三个功能按钮,定义div元素; 2、设置div元素的样式,宽度、高度和背景颜色。...部分 思路: 1、引入jQuery,如图 2、添加ready函数,ready是jQuery的文档就绪函数,它用于防止文档在完全加载之前允许jQuery代码,如果在文档没有完全加载之前就运行函数...,操作可能失败; 3、给三个按钮添加点击事件,这里用到筛选选择器eq; 4、实现单击显示按钮,控制div元素的显示(show),并弹出提示框(alert); 5、实现单击隐藏按钮,控制div元素的隐藏...(hide),并弹出提示框; 6、实现单击切换按钮,控制元素显示与隐藏切换(toggle)。

    8K10

    【jQuery动画】停止动画、淡入淡出、自定义动画

    fadeToggle([speed],[easing],[fn]) 在fadeIn()和fadeOut()两种效果之间切换 注意:fadeTo()方法的参数opacity表示透明度数值,范围在0~1...思路: 1、引入jQuery库; 2、为所有颜色方块设置2秒完成半透明的淡入效果(fadeTo); 3、添加鼠标滑过的函数(hover); 4、为每一个方块设置动画效果,即当前元素(this...animate()语法 $(selector).animate(params[,speed][,easing][,fn]); 注意: params表示想要更改的样式,以对象形式传递,样式名可以不用带引号...代码演示 实现效果 自定义动画 代码及思路 思路: 1、定义按钮,定义div元素; 2、设置盒子的大小、颜色、绝对定位(position:absolute),绝对定位的盒子是相对于离它最近的一个已定位的盒子进行定位的...,默认是body; 3、给定义的按钮绑定点击事件; 4、设置动画,当单击鼠标时,div元素运动到距离左侧500px,距离顶部300px的位置,透明度为0.4,宽度为500px; <!

    3.1K20

    Jump Start Bootstrap 第4章

    我们将会看到如何添加下拉菜单到导航栏、切换按钮的状态、当点击按钮时漂亮的警告信息会在显示一段时间后消失等等功能。...现在,我们有了一个简单的下拉菜单,在单击链接时显示菜单。我们可以在浏览器中查看它,如图所示。 ? 让我们结合使用下拉式插件和我们在前一章中创建的标签和按钮菜单。...当你点击按钮时,你会看到一个类似于插图效果的样式;在再次单击时,它返回到原来的样式,如图所示。data-toggle=”button”实现了这个切换功能。 ?...此外,您还必须在所有的这些按钮中都包含一个统一name属性值,从而在逻辑上对这些按钮进行分组。在本例中,我还将btn-default替换为btn-info,这将使按钮的颜色从灰色改为浅蓝色。...它应该有一个data-target属性来告诉Bootstrap,在一个网页中可以有多个模式对话框。我们还需要定义的data-toggle属性来确定单击时触发的内容。

    32.2K40

    如何在低代码平台中引用 JavaScript ?

    CSS 的作用在于将网页内容与表现形式分离,使得开发者可以独立设计和更改文档的表现风格,包括但不限于字体、颜色、间距、布局、尺寸、动画效果等。...上面页面显示的内容大体逻辑是,为三个单元格进行了命令,分别为x,y,plus,当我们在x,y单元格输入数字值后,点击按钮执行 JavaScript 命令调用我们的 add 方法,就可以计算出对应的和。...说明: 如果文件中包含中文,请确认文件使用的是Unicode编码。 活字格内置了JQuery3.6.0库(活字格V10.0版本),可以在脚本中直接使用JQuery功能。...在活字格设计器中打开页面,然后在页面右侧工具栏中,可以在属性设置区中选择“页面设置”选项卡,单击“ JavaScript 文件”上传 JavaScript 文件,上传完成后,可对 JavaScript...3、找到对应的代码后,在浏览器控制台给代码添加断点,即可进行运行调试。

    59610

    Windows 7 操作系统

    剪贴板只能保存最后一次复制或剪切的内容。在Windows7下,剪切,只可粘贴一次。复制,可粘贴多次。...将这些图标放置到桌面上的方法是:  (1)在桌面的空白区域单击鼠标右键,在右键菜单中选择“个性化”命令,在弹出的窗口中选择“更改桌面图标“选项,则弹出”桌面图标设置“对话框。  ...在列表框中单击某个主题可以更改桌面背景、窗口颜色、声音和屏幕保护程序,也可以单击窗口底部的相应链接进行上述设置。...在桌面的空白处右击,在弹出的快捷菜单中选择“屏幕分辨率”命令,则弹出屏幕分辨率设置窗口,单击“分辨率”下拉列表框,可以调整屏幕分辨率,调整结束后,单击”确定“按钮完成设置。...单击“通知区域”的“自定义”按钮,可以在弹出的窗口中选择能在任务栏上出现的图标和通知。

    1.8K30

    如何用Scratch 3绘制矢量图形 【Gaming】

    要更改圆的颜色,请选择箭头工具,单击圆以选择它,然后单击“填充”下的下拉菜单。这将打开用于更改形状的颜色、饱和度和亮度的选项。–如果希望形状透明,请选择带有对角线红线的白色框将颜色设置为“无”。...单击并拖动两个边节点以选择它们。节点被选中时变为蓝色。 图片11.png 选择节点后,按键盘上的向上箭头将节点移向圆的顶部。 图片12.png 5....要将茎移到苹果后面,请单击画布上方的“后退”按钮。 图片14.png 添加突出显示形状 1. 选择线条工具。在苹果形状上画一个三角形,把每一条新线和前一条线的末端连接起来。...这将使线条变成一个完整的形状。 2. 使用箭头工具选择三角形,并使用填充工具将其更改为较浅的颜色,例如白色。 3. 使用“节点”工具添加和调整节点以创建高光形状。如果节点过于尖锐,可以将其更改为曲线。...选择要弯曲的节点,然后单击“弯曲”按钮。–Pro提示:要一次选择多个节点,请在选择每个节点时单击Shift键。 图片15.png 就这样,你画出了一个无限可扩展的苹果。

    6.5K00
    领券