多个按钮上的 javascript 函数

2024-01-27

我有三个按钮。我希望它们在按下时改变颜色,并在再次按下时恢复为无颜色。

我在 stackoverflow 上找到了这段代码,它几乎可以让我做到这一点,但是它只适用于一个按钮,其他两个不受影响。
另外,当我按下另外两个按钮中的一个时,第一个按钮会改变颜色。我尝试更改按钮上的 ID,添加另一个具有不同的脚本getElementById()身份证有,但没有任何作用。

我是否需要多个功能才能实现我想要的功能?

我正在使用的代码如下。

var count = 1;
function setColor(btn, color) {
  var property = document.getElementById(btn);
  if (count == 0) {
    property.style.backgroundColor = "#FFFFFF";
    count = 1;
  } else {
    property.style.backgroundColor = "#E68352";
    count = 0;
  }
}
<head>
  <link rel="stylesheet" type="text/css" href="styles/main.css"/>
</head>
<body>
  <input type="button" id="button" value = "A-D" style= "color:black" onclick="setColor('button', '#101010')";/>
  <input type="button" id="button" value = "E-H" style= "color:black" onclick="setColor('button', '#101010')";/>
  <input type="button" id="button" value = "E-H" style= "color:black" onclick="setColor('button', '#101010')";/>
</body>

通常,当您编写内联事件处理程序时,您可以利用:

  • this https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/this:当前元素:当从内联事件处理程序调用代码时,其 this 将设置为放置侦听器的 DOM 元素:
  • event https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Event_handlers: 事件元素对象

因此,改变:

onclick="setColor('button', '#101010')"

with:

onclick="setColor(this, event, '#101010')"

所以你的代码可以重写为:

function hexToRgb(hex) {
    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
    return result ? 'rgb(' +
        parseInt(result[1], 16) + ', ' +
        parseInt(result[2], 16) + ', ' +
        parseInt(result[3], 16) + ')'
     : null;
}


function setColor(btnEle, evt, color) {
    if (btnEle.style.backgroundColor == hexToRgb("#E68352")) {
        btnEle.style.backgroundColor = "#FFFFFF"
    }
    else {
        btnEle.style.backgroundColor = "#E68352"
    }
}
<input type="button" id="button1" value = "A-D" style= "color:black" onclick="setColor(this, event, '#101010')";/>
<input type="button" id="button2" value = "E-H" style= "color:black" onclick="setColor(this, event, '#101010')";/>
<input type="button" id="button3" value = "E-H" style= "color:black" onclick="setColor(this, event, '#101010')";/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个按钮上的 javascript 函数 的相关文章

随机推荐

  • 根据sql Server中的客户端时区存储当前日期时间

    我在数据类型 datetime 的 sql 表中有 dateTimeAuth 列 它的默认值是 getdate 如果我在离线模式下运行我的项目 它会返回我当前时间 当我将其上传到实时服务器时 它存储默认时区 GMT 的当前时间 我希望根据
  • 如何用 Python 创建一个能记住客户端的简单多线程套接字服务器

    如何制作一个简单的 Python 回显服务器来记住客户端并且不会为每个请求创建新的套接字 必须能够支持并发访问 我希望能够连接一次并使用此客户端或类似客户端不断发送和接收数据 import socket sock socket socket
  • 如何在 C# 中构建 XML?

    如何在 C 中生成有效的 XML 这取决于场景 XmlSerializer当然是一种方法 并且具有直接映射到对象模型的优点 在 NET 3 5中 XDocument等等也都非常友好 如果尺寸很大 那么XmlWriter是你的朋友 For a
  • 无法将参数值从字符串转换为小数(当字段为空时)

    我遇到了一个已经完成了一半的问题 现在的问题是我写的 使用vb net和mssql 2014 ent作为后端 这是我写的查询 cmd New SqlCommand insert into FAMPAR Open Bal Curr Bal D
  • HTML XPath:提取文本时有选择地避免标签

    后续行动 HTML XPath 提取与多个标签混合的文本 https stackoverflow com questions 10618016 html xpath extracting text mixed in with multipl
  • 从具有自定义集合属性的 UserControl 的项目进行绑定

    这个问题是 续集 这个问题 https stackoverflow com questions 5144009 custom controls content cant bind to parent of the control 我已经应用
  • 指南针 SCSS 颜色代码小写

    在我的团队中 我们有相同版本的 Compass Compass 0 12 2 Alnilam 当 Compass 编译我的 SCSS 时 SCSS 中的颜色代码从大写 A0CAE3 更改为小写 a0cae3 只有我有这个问题 其他开发人员都
  • 为什么 Rust 编译器要求我限制泛型类型参数的生命周期(错误 E0309)?

    为什么 Rust 编译器会发出错误 要求我限制以下结构中泛型参数的生命周期 pub struct NewType lt a T gt x a T error E0309 the parameter type T may not live l
  • Android 推送通知的自定义声音不起作用 (FCM)

    我有使用云功能中的 FCM 工作的推送通知 这适用于 iOS 和 Android 并在 iOS 上显示相应的图标并播放自定义声音 除了 Android 的自定义声音外 一切正常 它只是播放默认声音 我创建了一个文件夹并将声音文件添加到其中
  • Marionette 布局和区域有什么区别?

    Marionette 提供了两个名为Regions http derickbailey github com backbone marionette marionette region and Layouts http derickbail
  • 如何解析以字符串形式给出的数学表达式并返回一个数字? [复制]

    这个问题在这里已经有答案了 Java 有没有办法从这个数学表达式中得到结果 String code 5 4 7 15 另一方面 解析算术表达式的最佳方法是什么 您可以将其传递给豆壳 http www beanshell org bsh In
  • 如何以本地用户身份(无管理员权限)在 Windows 上安装 NodeJS LTS

    我以简单用户身份使用 Windows 我没有任何管理员权限 并且想要安装 NodeJS LTS On the 下载站点 https nodejs org en download 我可以选择仅下载二进制文件node exe 其中不包括npm
  • 打开文件的命令按钮 - 位于同一单元格按钮中的文件路径对齐到

    我正在尝试获取一个可以分配给命令按钮的宏 我有多个按钮可以打开不同的文件 因此在每个单元格中我都包含不同的文件路径 目前 我的命令按钮正在寻找特定的单元格引用并打开该值 有什么方法可以让宏在与其对齐的单元格中查找值 我目前正在使用两个宏 一
  • 没有这样的目的地

    我在我的网站中使用 Stripe 方法 用户从我的网站购买产品并通过 stripe 完成付款 我想收取佣金并将剩余的钱发送给服务提供商 当我尝试在条纹中使用传输方法时 它会显示错误消息 message No such destination
  • 如何使用 jq 获取两个 JSON 数组的交集

    给定数组 X 和 Y 最好都作为输入 但否则 一个作为输入 另一个硬编码 如何使用 jq 输出包含两者共有的所有元素的数组 例如f 的值是多少 使得 echo 1 2 3 4 jq f 2 4 6 8 10 会输出 2 4 我尝试过以下方法
  • 你能在 jQuery 中扩展 val() 函数吗?

    有没有办法扩展 jQuery 中的 val 函数 基本上 我想要做的是如果有内容被动态输入到输入中 则设置一个类变量 通常会是这样的 var thisVal Hello World myInput val thisVal addClass
  • Javascript parseFloat 和 null

    我对 javascript 非常陌生 因为我目前正在 jQuery Mobile 中制作跨平台 Web 应用程序 我已经使用了 XML 解析到 HighCharts 图表的示例 但是当我在系列数据中遇到 null 时 它无法绘制任何线条并使
  • 颜色逐渐变化

    屏幕左上角的标志如何随着鼠标滑过而逐渐改变颜色 我认为它是用 jquery 完成的 如果您不知道代码 您能给我指点可以的教程吗 谢谢 http www shopdev co uk blog http www shopdev co uk bl
  • 即使进行所有优化,Android 模拟器也会出现延迟

    HAXM 启用版本 7 1 0 我验证了它在模拟器运行时正常工作 模拟器使用 Nvidia GPU 但在任何给定时间它仅使用最多 7 的 GPU 我有 27 3 1 的模拟器版本 最新 尝试过 x86 图像和 x86 x64 图像 我尝试过
  • 多个按钮上的 javascript 函数

    我有三个按钮 我希望它们在按下时改变颜色 并在再次按下时恢复为无颜色 我在 stackoverflow 上找到了这段代码 它几乎可以让我做到这一点 但是它只适用于一个按钮 其他两个不受影响 另外 当我按下另外两个按钮中的一个时 第一个按钮会