4

私はこれを最初に試しましたが、機能していません:

<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>
4

2 に答える 2

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;
}

相対:JavaScriptのendsWith

于 2012-05-31T07:26:17.230 に答える
0

以下が機能するはずです

<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="minus.gif"  onClick="function(){this.setAttribute("src", 'plus.gif');}"/>
于 2012-05-31T07:28:12.687 に答える