0

div を開閉する jquery スライダーがあります。ただし、ページがポストバックを取得すると、div は閉じられます。そして、divを開いたままにしておきたい。

私のスライダー

 if ($(".div").is(":hidden")) {
            $(".div").slideDown(1000); // slide it down

        } else {
            $(".div").slideUp(1000); // hide it
        }

などの住所変更を考えました

website.com#open

次にアドレスを確認しますが、どうすればこれを行うことができますか?

4

4 に答える 4

0

ポストバック間でdivの状態を保持する必要があります。これを行うには、URLのポストバック間で状態を渡すか、次のポストバックの準備としてサーバーに状態を記録します。

次のようなパラメータを持つURLを使用できます。

http://website.com?open=true

次に、次のようなurl param解析関数を使用して、ページの読み込み時にdivの状態を確認できます。

var QueryString = function () {
  // This function is anonymous, is executed immediately and 
  // the return value is assigned to QueryString!
  var query_string = {};
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
        // If first entry with this name
    if (typeof query_string[pair[0]] === "undefined") {
      query_string[pair[0]] = pair[1];
        // If second entry with this name
    } else if (typeof query_string[pair[0]] === "string") {
      var arr = [ query_string[pair[0]], pair[1] ];
      query_string[pair[0]] = arr;
        // If third or later entry with this name
    } else {
      query_string[pair[0]].push(pair[1]);
    }
  } 
    return query_string;
} ();

次に、以下を使用してページの読み込みを確認できます。

$(document).ready(function(e){
if(QueryString.open == 'true')
{
 $(".div").show();
}
});

ここでQuentinによって書かれたjavascriptparamparse関数。

于 2012-04-16T10:03:23.613 に答える
0

ページがポストバックすると、マークアップは元の状態に戻ります。したがって、$(".div").is(":hidden")常に true を返します。

ある種の状態識別子を作成し、それを使用して状態を確認できます。

于 2012-04-16T09:58:59.220 に答える
0

これをHtmlで処理します。この方法で HTML ステートメントを記述している必要があります。

<div class="div" style="display:none"></div>

私は次のように書きます。

<div class="div"></div>
于 2012-04-16T10:00:17.337 に答える
0

このようにしてみてください:

 var isPostBackObject = document.getElementById('isPostBack');
 if (isPostBackObject != null) {

 } else {
 //show your div open
 }
于 2012-04-16T10:01:08.860 に答える