在这里试试:http: //jsfiddle.net/SkHJw/
第一的
包括 jquery cookie 插件:https ://github.com/carhartl/jquery-cookie/
第二
在你想要的地方创建 cookie
$.cookie('showDialog', true);
第三
去掉代码中多余的大括号和圆括号(这应该可以解决您的对话框问题)。我在下面把它们取下来了:
$(function() {
if ($.cookie('showDialog') == undefined || $.cookie('showDialog') == null || $.cookie('showDialog') != 'false') {
$( "#dialog" ).dialog(
{
show: "slow",
modal: "true",
width: 600,
show: "fold",
hide: "fade",
resizable: false,
draggable: false,
buttons: [ { id: "go", text: "Opslaan", click: function() { $( this ).dialog( "close" ); } } ],
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }});
$(".ui-widget-overlay").css({background: "#000", opacity: 0.8});
$.cookie('showDialog', 'false', { expires: 1 }); // set the cookie, with expiry after 1 day
}
////$.cookie('showDialog', true); //uncomment this line to set cookie to true - this should show dialog
//alert($.cookie('showDialog')); //Uncomment this line to show the value of your cookie. It should read false and dialog would not launch;
});
第四
检查你的 if 语句
不要忘记上面的 if 语句意味着如果 cookie 值为 false,对话框不应该显示。如果未设置 cookie,这应该是默认值。因此,如果您希望对话框显示或更改 if 语句,请设置 cookie,具体取决于您的偏好:
if ($.cookie('showDialog') == undefined || $.cookie('showDialog') == null || $.cookie('showDialog') != 'true') {
您可能需要以下这些来了解如何实际使用 jquery.cookie 插件:
用法
创建会话 cookie:
$.cookie('the_cookie', 'the_value');
创建过期 cookie,从那时起 7 天:
$.cookie('the_cookie', 'the_value', { expires: 7 });
创建过期 cookie,在整个站点中有效:
$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
读取 cookie:
$.cookie('the_cookie'); // => "the_value"
$.cookie('not_existing'); // => undefined
阅读所有可用的 cookie:
$.cookie(); // => { "the_cookie": "the_value", "...remaining": "cookies" }
删除 cookie:
// Returns true when cookie was found, false when no cookie was found...
$.removeCookie('the_cookie');
// Same path as when the cookie was written...
$.removeCookie('the_cookie', { path: '/' });
注意:删除 cookie 时,您必须传递与设置 cookie 完全相同的路径、域和安全选项,除非您依赖默认选项。
在此处了解更多信息:https ://github.com/carhartl/jquery-cookie/