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を直接操作できます。トリックの 1 つは、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"

サーバー側で拡張バッグにアクセスし、コントロールを非表示にする必要がある場合は、次のコードを使用します

Expandingbag.Style.add( "display"、 "none");

または表示する必要がある場合は、

Expandingbag.Style.add( "display"、 "inherit");

于 2012-11-24T09:16:56.973 に答える