我想用dijit.TitlePane添加非常简单的基于持久性的cookie。我想确保标题窗格的状态是打开还是关闭应该保存在cookie中,以便下次加载页面时,标题窗格以记住的状态开始。这在我需要提交的表单中有很多标题窗格的情况下特别有用。
一些示例代码会有所帮助。
答案 0 :(得分:4)
这样做的一种方法是从TitlePane小部件继承并向其添加自己的实现。
dojo.require("dijit.TitlePane");
dojo.declare("dijit.MyTitlePane" , [ dijit.TitlePane ] ,
{
postCreate : function() {
var state = dojo.cookie(this.id);
if(state !== undefined){
this.open = /true/.test(state);
}
this.inherited(arguments);
},
toggle : function() {
this.inherited(arguments);
dojo.cookie(this.id, this.open , { expires : 365 });
}
});
答案 1 :(得分:0)
您可以使用dijit.byId('idOfTitle')._isShown();
获取titlePane的状态,然后将其存储在像dojo.cookie('idOfTitle', dijit.byId('idOfTitle')._isShown(), {expires: 30});
这样的cookie中,这样可以将titlePane的键值对保存30天。
要检索值,您只需调用dojo.cookie('idOfTitle');
即可在titlePane的状态之间切换,只需使用if语句和dijit.byId('idOfTitle').toggle()