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

从客户端将标题更改为“on”或“off”后,Attributes["title"]后面的c#代码的值仍然是“any”!任何帮助家伙...

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 回答