2012-04-16 64 views
0

我有一个jQuery的滑块,打开和关闭我的股利。但是当页面得到回传时,div被关闭。 我想让div保持打开状态。jQuery的div滑块时回发div关闭

我滑块

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

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

我想过改变地址,如

website.com#open 

然后检查ADRESS ,但我怎么能做到这一点?

回答

0

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

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

0

我会在Html中处理这个。你必须有书面的HTML语句这样

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

我会写:

<div class="div"></div> 
+0

当我有多个div,我只想要一个用户打开,然后我不能这样做。因为那时候div会打开。 但谢谢你的回答 – saadan 2012-04-16 10:40:09

0

尝试做这种方式:

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

} else { 
//show your div open 
} 
+0

其实我已经尝试过这样的东西。但是当我有几个div可以在我的页面上滑动时,我不知道在回发后我打开了哪个div。如果你明白的话。 如果我只有一个我可以做到这一点,但我得到了不止一个,可以在同一个网站上滑动 – saadan 2012-04-16 10:07:18

+0

@ saadan-每个div应该有一个单独的“ID”基于你可以做。或者你给相同的id到所有的div?如果你有一个单独的div中包含所有的div,这将使你的工作变得简单,这样你就可以使div可见,这样每个其他的div都将在页面加载时打开。 – coder 2012-04-16 10:08:46

+0

确定我所有的div都有唯一的id,但是if(isPostBackObject!= null) 我不知道该div是否打开? ,因为我看不到哪个用户打开了 – saadan 2012-04-16 10:25:54

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(); 
} 
}); 

的JavaScript解析PARAM功能由昆汀here写的。

+0

非常感谢您接近我所寻找的答案,但如何在按下我的按钮时更改我的查询。 ? – saadan 2012-04-16 10:35:23

+0

@saadan,它取决于你的按钮是什么以及它是否在表单中作为提交按钮。假设是这样,请确保表单“action”url已更新以反映div的当前状态,以便在页面刷新后出现url参数。 – 2012-04-16 14:15:21

+0

当我按下按钮,它运行jQuery滑块,所以我不能让页面刷新。否则它不会运行滑动功能。 我必须在客户端设置它。 – saadan 2012-04-16 19:04:08