我想添加非常簡單的基於cookie的持久性與dijit.TitlePane。我想確保標題窗格的狀態是打開還是關閉,應該保存在一個cookie中,以便下次加載頁面時,標題窗格以記住狀態開始。這在需要提交的表單中有很多標題窗格的情況下特別有用。添加一些持久性到dijit.TitlePane(打開/關閉狀態)
一些示例代碼會有所幫助。
我想添加非常簡單的基於cookie的持久性與dijit.TitlePane。我想確保標題窗格的狀態是打開還是關閉,應該保存在一個cookie中,以便下次加載頁面時,標題窗格以記住狀態開始。這在需要提交的表單中有很多標題窗格的情況下特別有用。添加一些持久性到dijit.TitlePane(打開/關閉狀態)
一些示例代碼會有所幫助。
一種方法的價值,是從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 });
}
});
你可以通過dijit.byId('idOfTitle')._isShown();
得到titlePane的狀態,你可以將它存儲在這樣的cookie中,如dojo.cookie('idOfTitle', dijit.byId('idOfTitle')._isShown(), {expires: 30});
這樣可以將titlePane的鍵值對保存30天。
要檢索你只需要調用dojo.cookie('idOfTitle');
到titlePane的狀態之間切換隻需使用一個,如果這樣的說法和dijit.byId('idOfTitle').toggle()
這是一個很好的使用cookies的例子:) – 2010-01-13 12:36:27
非常感謝。這工作完美。 – 2010-01-13 12:25:36
對於Dojo 1.6和之後的版本,您需要替換this.open = /true/.test(state);與this.set('open',/true/.test(state)); – faken 2011-06-17 16:54:57