首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果else语句未到达部分

如果else语句未到达部分
EN

Stack Overflow用户
提问于 2012-09-19 06:15:37
回答 4查看 215关注 0票数 0

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

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

下面是我使用的算法:

  1. 单击按钮启动功能。
  2. 当我单击div时,如果数据等于“1”,则替换图像并将数据设置为“2”。
  3. 当我再次单击图像时,将图像设置为原始图像,并将数据设置为“1”,这样函数就可以自己重复。

它似乎在第一次尝试中替换了图像,就像在第一次"if“中一样,但是在第二次尝试(其他部分)中,它不会再次替换图像。它似乎永远达不到其他部分,即使第一个如果应该返回假,然后去其他。

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

下面是代码:

代码语言:javascript
运行
复制
<!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

代码语言:javascript
运行
复制
.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');
}
EN

回答 4

Stack Overflow用户

发布于 2012-09-19 06:18:24

您在“否则”中有一个错误,第一行是(this)中缺少的$

票数 4
EN

Stack Overflow用户

发布于 2012-09-19 06:19:50

您缺少了一个$ in else子句。

固定:

代码语言:javascript
运行
复制
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");
           }               
    });
}
票数 1
EN

Stack Overflow用户

发布于 2012-09-19 06:18:47

试着像这样

代码语言:javascript
运行
复制
if (($(this).attr("data-kangaroo")) == "one")  //Here is the edit
{
       $(this).css('background-image', "url(image2.png)");

        $(this).data('kangaroo',"two");

    }
else
    {
        $(this).css('background-image', "url(image1.png)");     //Here put "$" before (this)             
        $(this).data('kangaroo',"one");
    }  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12489431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档