3

div 要素のタイトルに問題があります。以下は私の div 要素です:

<div id="sampleDiv" runat="server" class="exStyle" onclick="return div_Click(this);" title="any"></div>

以下は私のjavascriptです:

function div_Click(btn) {
    if (btn.title == "any") {
        btn.title = "on";
        btn.style.background = "url('sample1.png')";
    }
    else if (btn.title == "on") {
        btn.title = "off";
        btn.style.background = "url('sample2.png')";
    }
    else if (btn.title == "off") {
        btn.title = "any";
        btn.style.background = "url('sample3.png')";
    }
    return false;
}

クライアント側からタイトルを「オン」または「オフ」に変更した後、Attributes["title"]C#コードビハインドの値はまだ「任意」です!! 助けてください...

4

3 に答える 3

2

あなたは何をしようとしているのですか?タイトルは属性であるため、サーバーにポストバックされることはありません。入力要素のみがサーバーにポストバックされます。そのため、変更された値を取得できません。

この制限を回避するには、runat サーバー タグで隠しフィールドを追加する必要があります。投稿する前にhiddenfield値をdivタイトルに更新し、hiddenfieldを使用してコードビハインドの値を回復します。価値。

これが明確であることを願っています。

于 2013-10-04T11:52:34.020 に答える
1

これを試してください、これはあなたを助けます

$('#sampleDiv').click(function() {
    if ($(this).prop('title') == "any") {
        $(this).prop('title',"on");
        $(this).prop('background,url(sample1.png)');
    }
    else if ($(this).prop('title') == "on") {
         $(this).prop('title',"off");
        $(this).prop('background,url(sample2.png)');
    }
    else if ($(this).prop('title') == "off") {
         $(this).prop('title',"any");
        $(this).prop('background,url(sample3.png)');
    }
});

フィドル Here

于 2013-10-04T10:42:37.657 に答える
1

ここでは switch ステートメントを使用することをお勧めします。マッチしたら壊れる

 function div_Click(btn) {
     btn=$(btn);
     switch(btn.attr('title'))
        {
        case 'any':
          btn.attr('title','on');
          btn.css('background','url(sample1.png)');
          break;
        case 'on':
          btn.attr('title','off');
          btn.css('background','url(sample2.png)');
          break;
        case 'off':
          btn.attr('title','on');
          btn.css('background','url(sample3.png)');
          break;
        default:
          //default code if no match
        }
    }
于 2013-10-04T10:45:21.397 に答える