Onclick 图像按钮 - 逻辑没有意义[重复]

2024-03-21

我对 Javascript/html 中这个非常简单的 onClick 函数感到非常困惑。我知道对此有很多问题,但鉴于我的脚本的作用(或者在本例中没有),无法完全找到答案。它应该很简单,但由于某种原因,逻辑也没有像我期望的那样工作。

<h1>The onclick Event</h1>
<img id="onoff" onclick="changeImage();" src="images/Off Button.jpg" width="245" height="238">

<p>Click on button to turn "on"</p>

<script>
    function changeImage() {
        var image = document.getElementById("onoff");
        if (image.src.match("Off Button.jpg")){
            image.src = "images/On Button.jpg";
        }
        else{
            image.src="images/Off Button.jpg";
        }
    }
</script>

正如您所看到的,这应该采用原始的“关闭按钮”图像,并在单击时将其交换为“打开按钮”,前提是它显示“关闭按钮.jpg”。

然而,它什么也没做,使用 Chrome 开发者工具我可以看到脚本甚至没有触发。但是当我做出这些改变时:

    if (image.src.match("Off Button.jpg")){
        image.src = "images/Off Button.jpg";
    }
    else{
        image.src="images/On Button.jpg";

现在它会触发并将按钮更改为“On Button”,但不会再次触发以将其更改回来。对我来说,这在逻辑上没有意义,但我可能只是错过了一些非常明显的东西。我知道这是非常基本的,但任何帮助或解释将不胜感激。


我对代码做了一些更改,现在它可以工作了。 我使用了相对路径./到 img src 并且大多数情况下您应该避免使用空格来命名图像或其他任何内容 - 空格总是会导致问题;)

<h1>The onclick Event</h1>
<!-- relative path and no space in name on src -->
<img
    id="onoff"
    onclick="changeImage();"
    src="./images/off-button.jpg" 
    width="245"
    height="238"
/>

<p>Click on button to turn "on"</p>

<script>
    function changeImage() {
        var image = document.getElementById('onoff');
        if (image.src.match('off-button.jpg')) { /*  no space in name */
            image.src = './images/on-button.jpg'; /* relative path and no space 
            in name */
        } else {
            image.src = './images/off-button.jpg'; /* relative path and no space 
            in name */
        }
    }
</script>

注意 - 请记住也要重命名图像文件夹中的图像

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Onclick 图像按钮 - 逻辑没有意义[重复] 的相关文章

随机推荐

  • 将 mongodb 作为 Windows 服务运行

    我已经在 win32 上安装了 mongodb 我正在尝试将其作为服务运行 我已按照此处发布的说明进行操作 http www deltasdevelopers com post Running MongoDB as a Windows Se
  • SQL Server 2005 查询的性能

    这需要 4 秒来执行 有 2000 000 行 为什么 DECLARE AccountId INT DECLARE Max INT DECLARE MailingListId INT SET AccountId 6730 SET Max 2
  • 将选择器添加到 UIButton

    I have ViewController然后两个不同的ViewControllers扩展该主要ViewController 一个用于 iPhone 另一个用于 iPad iPad 的ViewController实例化一个单独的扩展UIVi
  • 哪些真实平台将硬件端口映射到内存地址?

    我有时会在某些平台上看到以下 C 或 C 代码的语句 int ptr ptr 0 可能会导致写入硬件输入输出端口 如果ptr恰好存储了该端口映射到的地址 通常它们被称为 嵌入式平台 此类平台的真实例子有哪些 根据我的经验 大多数系统都使用内
  • 使用自定义区域性时 ResourceManager 未选择正确的资源集

    我使用以下代码创建了一个本地化的 MVC 网站 亚历克斯 阿达米安 Alex Adamyan 的博客 http adamyan blogspot com 2010 07 addition to aspnet mvc localization
  • 如何在类Unix操作系统下方便的运行SBCL代码?

    David James 写了问题和答案 我将对其进行编辑以符合 Stackoverflow 标准 使用 SBCL 您可以将 Lisp 代码编译为机器代码 像 Java net C 甚至 C 一样 您将需要运行时 所以有两种方法来编译 Com
  • CATALINA_OPTS 在 Tomcat 中如何工作?

    我很好奇 CATALINA OPTS 在 Apache Tomcat 的后台如何工作 是的 我知道它在 Tomcat 启动和运行时执行 我添加了一些参数供我的程序使用 甚至我使用它很长时间 将其添加到我的 VM 参数中 但不确定它是如何运行
  • 有条件的承诺

    在我的脚本中 我需要检索一个字典以将编码值转换为名称 ajax retrieve dictionary done function dictionary convert encoded values into names done func
  • 计算时间戳之间的营业时间[重复]

    这个问题在这里已经有答案了 我使用的是Postgres 8 3 目前没有选择版本 我的原始数据表如下 ID start time finish time 01 2013 01 23 10 47 52 05 2013 02 25 11 18
  • 如何在 Scala 中创建没有文字元素名称的 XML 根节点?

    我正在寻找创建一个这样的文档
  • Spark ml 和 PMML 导出

    我知道可以将模型导出为PMML with Spark MLlib 但是关于Spark ML 是否可以转换LinearRegressionModel from org apache spark ml regression to a Linea
  • PoseWarping:如何矢量化此 for 循环(z 缓冲区)

    我正在尝试使用地面真实深度图 姿势信息和相机矩阵将帧从视图 1 扭曲到视图 2 我已经能够删除大部分 for 循环并将其矢量化 除了一个 for 循环 扭曲时 由于遮挡 视图 1 中的多个像素可能会映射到视图 2 中的单个位置 在这种情况下
  • 将列的元素分配到基于另一列的矩阵中

    我需要帮助编写执行以下操作的脚本 data 1 1 2 2 1 3 3 3 4 3 3 5 4 3 6 该脚本需要检查第二列中的数字是否重复 下面的草图解释了我想要完成的任务 对于第二列中的每个重复值 我希望第三列中共享第二列中每个重复值的
  • 尝试使用 POSIX 消息队列创建消息队列时权限被拒绝

    我正在使用以下代码片段创建一个消息队列Linux 编程接口 http man7 org tlpi if mq open my message queue O CREAT O RDWR NULL 1 perror mq creation fa
  • 自定义软键盘按键预览

    I am 使用软键盘工作 我已经完成了所有功能 但现在我只需要更改关键预览的视图当关键是 按下 目前显示了我的按键预览 默认示例键盘按键 预览 如下图所示 正如我们所看到的 当按下按键时会弹出字符 d 但现在我需要定制它 作为目前主要预览背
  • 从 pyarrow.Table 转换为 pandas 时处理大时间戳

    我有一个时间戳9999 12 31 23 59 59以 int96 形式存储在 parquet 文件中 我使用 pyarrow dataset 读取此镶木地板文件 并将结果表转换为 pandas 数据框 使用 pyarrow Table t
  • @material-ui/core 和 @types/material-ui 是什么关系?

    这里我看到一个使用material ui 的示例项目 我看到 package json 文件中有以下包 dependencies material ui core 1 4 1 devDependencies types material u
  • 基本页或基本母版页或嵌套母版页?

    我有一个包含两个母版页的网站 一个用于一列布局 一个用于两列布局 它们嵌套在提供通用页眉和页脚的母版页中 我希望每个内容页面都具有功能 我是不是该 创建一个页面基类并在我的内容页面中继承它 或者 创建一个母版页基类并在我的嵌套母版页级别之一
  • 编写依赖于其他键的更复杂的 json 模式

    我一直在编写简单的 JSON 模式 但遇到了一个稍微复杂一点的 API 输入调用 我有一条宁静的最终路线 可以采用 3 种截然不同类型的 JSON 本地主机 foo 可以采取 类型 冰淇淋 锥体 华夫饼 or 类型 热狗 小圆面包 小麦 如
  • Onclick 图像按钮 - 逻辑没有意义[重复]

    这个问题在这里已经有答案了 我对 Javascript html 中这个非常简单的 onClick 函数感到非常困惑 我知道对此有很多问题 但鉴于我的脚本的作用 或者在本例中没有 无法完全找到答案 它应该很简单 但由于某种原因 逻辑也没有像