javascript - if else 语句未到达 else 部分

标签 javascript jquery

所以我正在制作一个图像切换功能,可以在两个图像之间切换。更具体地说,它切换 div 的背景图像。

我使用 jquery .data() 函数作为计数器,其中一个 = 第一个图像,两个 = 切换图像。

这是我正在使用的算法:

  1. 点击按钮启动功能。
  2. 当我点击div时,如果数据等于“一”,则替换图像并将数据设置为“二”。
  3. 当我再次单击该图像时,将图像设置回原始图像并将数据设置为等于“一”,以便该函数可以重复执行。

它似乎在第一次尝试时替换了图像,就像在第一个“if”中一样,但在第二次尝试时(else部分)它不会再次替换图像。它似乎永远不会到达 else 部分,即使第一个 if 应该返回 false,然后转到 else。

任何帮助将不胜感激。另外,我知道有一个 .toggle() 函数和其他图像切换方法,但我必须使用这个方法,因为这只是一个较大程序的一小部分经过编辑的 block 。

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <script src="jquery.js"></script>
        <link rel="stylesheet" type="text/css" href="mouseovertestlayout.css" />
        <script>
        function startEdit()
        {     
            $("div").click(function () 
            {                           

                if (($(this).data('kangaroo')) == "one")
                {
                    $(this).css('background-image', "url(image2.png)");
                    $(this).data('kangaroo',"two"); 
                }
                else
                {
                    (this).css('background-image', "url(image1.png)");                  
                    $(this).data('kangaroo',"one");
                }               
            });
        }
        </script>
    </head>
    <body>
        <div class="container"  data-kangaroo="one" ></div>
        <button  onclick="startEdit()"> </button> 
    </body>
</html>

这是我的 .css

.container
{
    width: 20px;
    height: 20px;
    line-height: 0;
    border-style:solid;
    border-width:1px;
    border-color:red;
    padding: 20px;
    background-repeat:no-repeat;    
    background-image:url('image1.png');
}

最佳答案

您的“else”第一行有一个拼写错误,即 (this) 处缺少 $

关于javascript - if else 语句未到达 else 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12489431/

相关文章:

javascript - 无法调整文本区域的高度

javascript - 单击按钮 JS 时运行警报

javascript - Highcharts 向下钻取 - x 轴标记钻取时的损失

javascript - 如何使用ajax进行等值类型比较返回json空数组

javascript - 如何使用 JavaScript 中的一个按钮恢复和暂停计时器?

JavaScript 代码不会导致图像在向后滚动时重新出现

javascript - 使用 Vue 和 AXIOS 从 API 循环构建数组

jquery - Onclick 事件不会向 div 添加类

javascript - 如何暂停 .delay() 方法?

javascript - React 中的双重渲染与 componentDidMount 中的异步调用导致错误