0

我有一个函数 openbag(); 用于打开 div。此 div 在单击和 addClass“活动”时也打开。但我从服务器端打开这个 div,调用函数 openbag();。但问题是每次刷新其他页面时这个div都是打开的。我已经删除了“活动”课程并检查课程是否没有,但这总是显示。这是我正在使用的代码。

function openBag() {
   $("#bag").addClass("active");
   $("#expanding-bag").slideDown("fast");
  }


$(document).ready(function () {
    if ($("div#bag").hasClass("active")) {
        $("#expanding-bag").show();
        $("#bag").removeClass("active");
    }

    else {
        $("#expanding-bag").hide();
    }

在 c# 中:

Page.ClientScript.RegisterStartupScript(typeof(Page), "alert", "<script language='javascript'>openBag();</script>");
4

2 回答 2

2

您可以避免打开和关闭它以及所有这些,并直接从后面的代码中操作 javascript。一个技巧是使用 Literal 并显示或不显示,并将代码放入其中:

<asp:Literal runat="server" id="ShowIt" Visible="false" EnableViewState="false">
$(document).ready(function () {
    $("#expanding-bag").show();    
}
</asp:Literal>

<asp:Literal runat="server" id="HideIt" Visible="false" EnableViewState="false">
$(document).ready(function () {
    $("#expanding-bag").hide();
}
</asp:Literal>

和你背后的代码ShowIt.Visible=true;在你想运行的那个。

另一种方法是从后面的代码直接在页面上呈现此代码。

于 2012-11-24T07:39:21.883 回答
1

你也可以试试这种方式把你的

expandingbag to runat="server"

在服务器端访问您的扩展包,当您必须隐藏控件时使用以下代码

expandbag.Style.add("display","none");

或者当你必须显示然后使用

expandbag.Style.add("display","inherit");

于 2012-11-24T09:16:56.973 回答