如何使用jQuery隐藏带有Class / id的div

时间:2012-11-24 07:33:11

标签: jquery asp.net

我有一个函数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>");

2 个答案:

答案 0 :(得分: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;在你想要跑的那个。

其他方法是从代码后面直接在页面上呈现此代码。

答案 1 :(得分:1)

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

  

expandingbag to runat="server"

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

  

expandingbag.Style.add( “显示”, “无”);

或必须显示然后使用

  

expandingbag.Style.add( “显示”, “继承”);