我使用jQuery UI选项卡并使用其cookie功能来存储上次打开的选项卡。另外,我使用模态对话框,它还显示带有jUI选项卡的内容。
我为每个对话框使用唯一的cookie名称,因此不会有任何混淆。所以基本上,使用正确的标签信息存储cookie效果很好。
我现在面临的问题是,当对话框关闭时,对话框选项卡创建的选项卡cookie将被删除!但是,当我重新打开相应的对话框时,存储cookie的目的是恢复正确的选项卡。
我在对话框的结束事件中没有使用cookie删除代码,所以看起来,对话框会删除它自己的代码。有没有办法防止这种情况?
编辑01/25/2012:
此代码仅在每个加载的页面上(这也意味着对话框弹出窗口中的内容):
function setTabs(object, node, classname) {
$('#tabs').tabs(
{
cache: false,
fx: {opacity: 'toggle'},
cookie: {name: classname + node + 'Tab', expires: 1, path: "/mySubDir/" } // where values for classname and node are generated at runtime; this works well
});
}
对话框代码很简单,没什么特别的:
$("#dialogDiv).dialog({
autoOpen: true,
height: "auto", //600,
width: "80%", // 700px,
position: [200, 100],
zIndex: index,
modal: true,
buttons: [
{
text: buttonTexts['ok'],
click: function () {
alert("Project specific stuff");
}
},
{
text: buttonTexts['cancel'],
click: function () {
$(this).dialog("close");
}
}
],
open: function (event, ui) {
// project specific stuff
$(this).parent().find('.ui-dialog-buttonpane button:contains(' + buttonTexts['cancel'] + ')').button({
icons: {primary: 'ui-icon-closethick'}
});
$(this).parent().find('.ui-dialog-buttonpane button:contains(' + buttonTexts['ok'] + ')').button({
icons: {primary: 'ui-icon-check'}
});
},
close: function () {
// project specific stuff
}
});
项目特定的东西没有使用任何cookie代码......
希望这会有所帮助。