2011-12-15 3 views
1

私は、画面の下にあるログインフォームを開いて閉じて、スライドトッグルで切り替えます。どうすればいいですか?ユーザーがページを変更した場合、開いた状態または閉じた状態は同じままですか?おそらくAjaxの更新パネル?以下は、私がトグル用に持っているJQueryのコードです:jQueryでトグルを保存する

 <script type="text/javascript"> 
      if ($('#divLoginFootForm').is(":visible")) { 
       $('#divLoginFootForm').show(); 

      } 
      else { 
       $('#divLoginFootForm').show(); 

      } 

      $('.log').click(function() { 
       $('#divLoginFootForm').slideToggle('slow', function() { 
        // Animation complete 

       }); 
      }); 



</script> 

ありがとう!

+0

離脱してそのページに戻ったときにトグル状態を覚えているということですか? – MattW

+0

確かに、またはサイト内の他のページに移動します。私はマスターページを使用しています。 – Det

+0

以下の回答はいずれも役に立ちましたか?可視値をクッキーに保存することができます(下記参照)。.toggle(bool)を使用して、初期トグルをクッキーに保存された値に設定します。 http://api.jquery.com/toggle/ – MattW

答えて

0

フォームの表示状態をクッキーに保存します。その後のリクエストでは、クッキーから可視の状態を読み取り、それをフォームに適用します。

this page on quirksmode for reading/writing/deleting cookiesの3つの機能を簡単に組み込むことができます。

+0

私は確かにクッキーを検討していました。リンクありがとう! – Det

0

を見てみましょう。クライアントとサーバーの両方でアクセス可能でなければならないため、非表示のフィールドを使用する必要があります。クライアント側では、ユーザーが状態を切り替えると、隠しフィールドのvalを設定して状態を反映します。

asp.netを使用しているため、状態はポストバックの間保存され、コードビハインドの初期状態などを制御できます。

Cookieを使用すると、ユーザーが開くことができるページ(つまり複数のタブ)のすべてのインスタンス間で状態が共有されますが、これは必要でない可能性があります。

編集:Here's a questionこれはjqueryで非表示フィールドの値を設定する方法を示しています。それがないので

クッキーが有益であるかもしれない(あなたはASP.Netを使用している場合)

  1. クッキー

  2. セッションアイテムコレクション:

+0

私はどのように状態をつかんで、そのフィールドに戻しますか?同じことをするためにグローバル変数を使うこともできます。 – Det

+0

ページ内のグローバル変数にはクライアントからアクセスできません。 – chris

+0

それはサーバー側ではないでしょうか? – Det

0

あなたはカップルのオプションがありますあなたのウェブプラットフォーム特有のものであり、jQueryはそれを単独で行うことができます。

セッションアイテムのコレクションは、コード内に保持し、クッキーに書き出したくない場合に適しています。

サーバーがこの状態について知る必要がない場合、私はクッキーを提案します。

+0

私はASP.Netを使用しています。あなたはセッションアイテムの収集について詳しく説明できますか? – Det

+0

'HttpContext.Current.Session [keyStr]'は、HttpSessionStateの単純なアイテムコレクションです。私はそれを使ってクッキーを補う。使いやすく、理解しやすい - http://msdn.microsoft.com/en-us/library/system.web.httpcontext.session.aspx - あなたを始めるための素早いドキュメントです。もう一度、クライアントサイドのスクリプトだけが知っている必要がある場合は、他のクライアントと同様にクッキーを提案します。 –

+0

ありがとうございます。 – Det