我有一个jquery滑块可以打开和关闭我的div。但当页面获得回发时,div将被关闭。 我希望div保持开放。
我的滑块
if ($(".div").is(":hidden")) {
$(".div").slideDown(1000); // slide it down
} else {
$(".div").slideUp(1000); // hide it
}
我考虑过更改地址,例如
website.com#open
然后查看地址 但我怎么能这样做?
答案 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函数。