任何人都可以告诉我如何在更改页面时维护jquery手风琴活动状态面板。理想情况下,我想改变代码隐藏,但真的很高兴让它工作。
在asp.net 3.5中开发
希望这有帮助
由于
答案 0 :(得分:3)
示例here。如果您选择其中一个手风琴标题然后刷新页面,则默认情况下会打开您单击的最后一个手风琴面板
我认为这是纯粹的客户责任。我会将信息存储在cookie plugin here中,您可以将其读取并传递给手风琴构造函数。 我更倾向于将值传递给服务器以及从服务器传递值而没有真正的好处。
沿着这些方向的东西
//get persisted active accoridan index
var activeIndex = $.cookie('accordianActiveIndex');
//guard code here to check you have a valid activeIndex...
$('.selector').accordion({
active: activeIndex,
change: function(event, ui) {
//set cookie here to new active header (index)
$.cookie('accordianActiveIndex', ui.newHeader.prevAll().length)
}
});
答案 1 :(得分:2)
对于有类似问题的人来说,使用jQuery UI Accordion可以使用cookie,我已经通过在redsquare's代码中添加一行来解决这个问题。
需要将cookie值activeIndex
解析为整数:
//get persisted active accoridan index
var activeIndex = $.cookie('accordianActiveIndex');
activeIndex = parseInt(activeIndex, 10);
//guard code here to check you have a valid activeIndex...
$('.selector').accordion({
active: activeIndex,
change: function(event, ui) {
//set cookie here to new active header (index)
$.cookie('accordianActiveIndex', ui.newHeader.prevAll().length)
}
});
答案 2 :(得分:1)
这是使用 cookie.js 插件保存UI手风琴状态的另一种方法:
var accordion = $("#accordion");
var index = $.cookie("accordion");
var active;
if (index !== null) {
active = accordion.find("h3:eq(" + index + ")");
} else {
active = 0
}
accordion.accordion({
header: "h3",
event: "click hoverintent",
active: active,
change: function(event, ui) {
var index = $(this).find("h3").index ( ui.newHeader[0] );
$.cookie("accordion", index, {
path: "/"
});
},
autoHeight: false
});
答案 3 :(得分:0)
我只是用
$( ".selector" ).accordion({ navigation: true });
保持所选选项的状态