Javascript 回发div关闭时的jquery div滑块

Javascript 回发div关闭时的jquery div滑块,javascript,jquery,html,slider,Javascript,Jquery,Html,Slider,我有一个jquery滑块,可以打开和关闭我的div。但是当页面得到回发时,div就关闭了。 我希望部门保持开放 我的滑块 if ($(".div").is(":hidden")) { $(".div").slideDown(1000); // slide it down } else { $(".div").slideUp(1000); // hide it } 我想更改地址,例如 website.com#op

我有一个jquery滑块,可以打开和关闭我的div。但是当页面得到回发时,div就关闭了。 我希望部门保持开放

我的滑块

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

        } else {
            $(".div").slideUp(1000); // hide it
        }
我想更改地址,例如

website.com#open
然后检查地址
但是我该怎么做呢

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


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

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

<div class="div" style="display:none"></div>
我会写:

<div class="div"></div>
试着这样做:

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

 } else {
 //show your div open
 }

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

您可以将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;
} ();

Quentin编写的javascript参数解析函数。

实际上我已经尝试过类似的东西。但是当我有几个div可以在我的页面上滑动时,我不知道我在回发后打开了哪个div。如果你明白的话。如果我只有一个,我可以做到这一点,但我有一个以上,可以在同一个幻灯片site@saadan-每个div都应该有一个单独的id,这是基于您可以做的。或者您是否给所有div提供了相同的id?如果您将所有div都包含在一个div中,这将使您能够轻松地工作,从而使该div可见,从而使每个div其他div将在页面加载时打开。请确保我的所有div都具有唯一id,但在if isPostBackObject中!=空我不知道该打开哪个分区?因为我看不到哪个用户打开了。你可以有一个唯一的类名,但没有ID。试试这个类名。我仍然不知道用户打开了哪个。非常感谢你的回答,你更接近我想要的,但是当我按下按钮时,我如何更改我的查询@saadan,这取决于您的按钮的功能以及它是否以提交按钮的形式存在。假设是,请确保表单操作url已更新以反映div的当前状态,以便在页面刷新后url参数出现。当我按下按钮时,它将运行jquery滑块,因此我无法刷新页面。否则,它将不会运行滑动功能。我必须在客户端设置它。@saadan:您必须明白,在不更改浏览器位置或发布表单的情况下,无法操作url。最好的方法是在每次更改div滑块的状态时设置cookie值。这样,您可以每次更改cookie值,页面回发之间就会出现滑块状态。当我有多个div,并且我只希望用户打开的一个div打开时,我无法执行此操作。因为到时所有的分区都会开放。但是谢谢你的回答
$(document).ready(function(e){
if(QueryString.open == 'true')
{
 $(".div").show();
}
});