0

我有一个 javascript,通过它我可以动态更改列表的 css 类。

我的列表 :

 <div class="BreadCrumbDiv">
            <ul id="breadcrumbs-two">
                <li><a href="#" onclick="changeClass(a1);" class="current1" id="a1">Step1
                    and user</a></li>
                <li><a href="#" onclick="changeClass('a1');" id="a2">Step2</a></li>
                <li><a href="#" onclick="changeClass('a1');" id="a3">Step3</a></li>
                <li><a href="#" onclick="changeClass('a1');" id="a4">Step4</a></li>

            </ul>
        </div>

Java脚本:

   function changeClass(elementid) {
        var lis = document.getElementById(elementid);
        lis.className = "current";
        lis.className = "current1";
    }

现在从我的按钮我正在调用这样的javascript

 <asp:button id="btnNextODCDetails" runat="server" text="Next" cssclass="Button" onclientclick="changeClass('a2');"/>

但是一旦回发发生,更改的 css 样式就不起作用了。我不想使用更新面板。请有人帮助我。

在此先感谢 Gulrej

4

4 回答 4

1

当您回发数据时,控件树将从 aspx 标记重新创建。因此,无论您对客户端的 html 元素所做的任何更改都将丢失。

于 2013-09-26T11:11:10.920 回答
0

当页面完全发布并再次呈现时,您将丢失所有客户端代码(JS)更改。

如果您仍然需要,请以某种方式使用隐藏字段或其他方式保留信息,并在页面加载时检查相同内容并将其设置在客户端。

您可以使用此客户端代码

jQuery:

 $(document).ready(function(){ // your checking});

JavaScript:DOMContentLoaded

<script>
  document.addEventListener("DOMContentLoaded", function(event) {
    console.log("DOM fully loaded and parsed");
  });
</script>

IE:

object.addEventListener("DOMContentLoaded", handler, useCapture) //IE model
于 2013-09-26T11:24:43.697 回答
0

我得到了答案。我稍微改变了我的脚本。我在单击按钮事件时调用了脚本。

  string script = " $(document).ready(function () { $('#breadcrumbs-two li #a2').addClass('current');  $('#breadcrumbs-two li #a2').removeClass('current');  $('#breadcrumbs-two li #a2').addClass('current1');  });";
        ClientScript.RegisterClientScriptBlock(this.GetType(), "function", script, true);

古勒吉

于 2013-09-27T05:40:33.430 回答
0

在 Page_Load 之后在客户端使用此代码:它实际上对我有用。

ScriptManager.RegisterStartupScript(Me.Page, GetType(Page), String.Format("StartupScript"), "<script type=""text/javascript""> GetAttributeName(); </script>", False)
于 2020-06-10T16:13:11.943 回答