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

我会在 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 回答
0

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

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

于 2012-04-16T09:58:59.220 回答
0

您需要在回发之间保持 div 的状态。您可以通过在 url 中的回发之间传递状态或在服务器上记录状态以准备下一次回发来做到这一点。

您可以使用带有参数的网址,例如;

http://website.com?open=true

然后,您可以使用 url 参数解析函数检查页面加载时的 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在这里编写的 javascript 参数解析函数。

于 2012-04-16T10:03:23.613 回答