我有一个函数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>");
答案 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( “显示”, “继承”);