想要在客户端点击时使用javascript更改ImageButton的图像src

时间:2012-05-31 06:50:37

标签: javascript asp.net

我首先尝试了这个不起作用:

<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="minus.gif" OnClientClick="this.src='plus.gif';"/>

另一种方法:

<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="minus.gif" OnClientClick=" return changeImg(this)"/>    

 function changeImg(cnt)
    {
    if(cnt.src='minus.gif')
    {
    cnt.src='plus.gif';
    }
    else
    {
    if(cnt.src='plus.gif')
    {
    cnt.src='minus.gif';
    }
    }
    return false;
    }
    </script>

2 个答案:

答案 0 :(得分:2)

这里的问题是你不会在客户端点击时返回false,而是触发后面的代码onlick。只需返回false; 以避免回复,并获得您尝试的内容。

<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="minus.gif" OnClientClick="this.src='plus.gif';return false;"/>

更新

在您的代码中输入if(cnt.src='plus.gif'),但必须输入==,而不是=

要避免这种类型的错误,最好先放置const,例如输入

if('plus.gif' == cnt.src)

和最终代码

function changeImg(cnt)
    {
      if(endsWith(cnt.src, 'minus.gif'))
      {
        cnt.src='plus.gif';
      }
      else if(endsWith(cnt.src, 'plus.gif'))
      {
         cnt.src='minus.gif';
      }          
      // to avoid post back return false
      return false;
    }

function endsWith(str, suffix) {
   return str.indexOf(suffix, str.length - suffix.length) !== -1;
}

relative:endsWith in JavaScript

答案 1 :(得分:0)

以下内容应该有效

<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="minus.gif"  onClick="function(){this.setAttribute("src", 'plus.gif');}"/>