【问题标题】:Jquery Image Change on SlideToggle FunctionSlideToggle功能上的Jquery图像更改
【发布时间】:2012-01-29 01:16:58
【问题描述】:

我有一个 div 的 onclick 函数。我想更改在单击时打开和关闭 div 的标题旁边的箭头图像。我写了一个函数,它可以将图像从下(默认)更改为右,但不会将其改回。

这里是 Javascript:

$("#toggle1").click(function () {
    $("#content").slideToggle("fast");

    if ($("#image1").attr('src', "images/arrow_down.gif")) {
        $("#image1").attr(
            'src', 
            $("#image1").attr('src').replace('_down', '_right')
        );
    } else {
        $("#image1").attr(
            'src', 
            $("#image1").attr('src').replace('_right', '_down')
        );
    }
});

这是 HTML:

<div style="text-align:center;"><a class="header" id="toggle1">Location</a>
<img id="image1" src="images/arrow_down.gif" alt="" />          
<div id="content">

【问题讨论】:

    标签: jquery onclick src


    【解决方案1】:
    if ($("#image1").attr('src', "images/arrow_down.gif"))
    

    需要

    if ($("#image1").attr('src') == "images/arrow_down.gif")
    

    【讨论】:

      【解决方案2】:

      Joseph 给了你你的答案,但也考虑以下代码改进:

      $("#toggle1").click(function () {
          $("#content").slideToggle("fast");
      
          var down = $("#image1").attr('src') == "images/arrow_down.gif"
      
          $("#image1").attr(
              'src', 
              $("#image1").attr('src').replace(down ? '_down' : '_right', down ? '_right' : '_down')
          );
      });
      

      更紧凑!

      【讨论】:

      • 感谢所有帮助。我使用了以下内容:
      • 和我下面的评论一样,它从下到右替换了初始图像,但它不会返回
      • 我让它完美地工作。谢谢你。如果我不将新的 aspx 文件上传到图像文件夹会有所帮助:$
      • Kevin,如果这对您有帮助,请给帖子投票,并通过左侧的复选标记将其标记为答案。谢谢。
      【解决方案3】:

      我做了一个 jsfiddle... 适合你的东西,比如 this???

      【讨论】:

      • 使用 CSS 也是一个不错的选择。我明白你是怎么做到的,但是让我感到困惑的是,一旦单击按钮一次,并且类更改为 btnToggleShow,是什么将其更改回 btnToggleHide?​​span>
      【解决方案4】:

      attr() 返回调用它的 jQuery 对象(从而提供可链接性)。您似乎认为它根据属性的值返回一个布尔值。

      但是,也许您根本不需要测试属性值。尝试类似:

      $("#toggle1").click(function() {
          var $content = $("#content");
          $("#image1").attr("src", "images/arrow_"
              + ($content.is(":visible") ? "down" : "right") + ".gif");
          $content.slideToggle("fast");
      });
      

      【讨论】:

      • 感谢您的意见。我使用了以下内容: $("#toggle1").click(function () { $("#content").slideToggle("fast"); var down = $("#image1").attr('src' ) == "images/arrow_down.gif"; $("#image1").attr('src', $("#image1").attr('src').replace(down ? '_down' : '_right ', down ? '_right' : '_down')); });我得到了相同的结果(图像从下到右变化,但不会变回来)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多