回发div关闭时的jquery div滑块

时间:2012-04-16 09:55:46

标签: javascript jquery html slider

我有一个jquery滑块可以打开和关闭我的div。但当页面获得回发时,div将被关闭。 我希望div保持开放。

我的滑块

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

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

我考虑过更改地址,例如

website.com#open

然后查看地址 但我怎么能这样做?

4 个答案:

答案 0 :(得分:0)

当页面回发时,标记将恢复为原始状态。因此,$(".div").is(":hidden")将始终返回true。

您可以创建某种状态标识符并使​​用它来检查状态。

答案 1 :(得分:0)

我会在Html中处理这个问题。您必须以这种方式编写HTML语句

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

我会写:

<div class="div"></div>

答案 2 :(得分:0)

尝试这样做:

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

 } else {
 //show your div open
 }

答案 3 :(得分:0)

你需要在回发之间保持div的状态。你可以通过在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 here编写的javascript param parse函数。