Как правельно использовать плагин jquery.cookie
Доброго времени суток форумчане, помогите разобраться с плагином. Не могу понять как им пользоваться. Вот к примеру есть простой код:
<div id="nameTest">Тест плагина jQuery.cookie</div> и простой скрипт, после клика скрывает блок с id #nameTest. $('#nameTest').click(function(){ $(this).hide(); }); Вопрос: как сделать так что бы куки запомнили скрытие блока, ну и если можно пример того как удалять куку. Если нетрудно обьясните максимально подробно, я только начал изучать библиотеку. В сети не совсем много разжеваных до мелочей примеров. Заранее благодарен всем за помощь:) |
ivanfom,
примерно так ... <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script>(function(c){"function"===typeof define&&define.amd?define(["jquery"],c):"object"===typeof exports?c(require("jquery")):c(jQuery)})(function(c){function p(a){a=e.json?JSON.stringify(a):String(a);return e.raw?a:encodeURIComponent(a)}function n(a,g){var b;if(e.raw)b=a;else a:{var d=a;0===d.indexOf('"')&&(d=d.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{d=decodeURIComponent(d.replace(l," "));b=e.json?JSON.parse(d):d;break a}catch(h){}b=void 0}return c.isFunction(g)?g(b):b}var l=/\+/g,e= c.cookie=function(a,g,b){if(1<arguments.length&&!c.isFunction(g)){b=c.extend({},e.defaults,b);if("number"===typeof b.expires){var d=b.expires,h=b.expires=new Date;h.setTime(+h+864E5*d)}return document.cookie=[e.raw?a:encodeURIComponent(a),"=",p(g),b.expires?"; expires="+b.expires.toUTCString():"",b.path?"; path="+b.path:"",b.domain?"; domain="+b.domain:"",b.secure?"; secure":""].join("")}for(var d=a?void 0:{},h=document.cookie?document.cookie.split("; "):[],m=0,l=h.length;m<l;m++){var f=h[m].split("="), k;k=f.shift();k=e.raw?k:decodeURIComponent(k);f=f.join("=");if(a&&a===k){d=n(f,g);break}a||void 0===(f=n(f))||(d[k]=f)}return d};e.defaults={};c.removeCookie=function(a,e){if(void 0===c.cookie(a))return!1;c.cookie(a,"",c.extend({},e,{expires:-1}));return!c.cookie(a)}});</script> <script> $(function() { var id = $.cookie("id"); if (id) $("#" + id).hide(); $("#nameTest").click(function() { $(this).hide(); $.cookie("id", this.id) }) });</script> </head> <body> <div id="nameTest">Тест плагина jQuery.cookie</div> </body> </html> |
рони,спасибо за ответ, но честно не понял. Можете подробно описать что к чему, я хочу вообще сделать что то вроде сообщения. Допустим вывожу сообщение в div блок, далее мне нужно что бы после закрытия блока. Пользователь его больше не видел на определенный срок... Но как это реализовать не пойму, можете расписать код с подсказками если нетрудно для чайника...
|
Допустим вот:
<div id="systemMessage"> <p>Вы больше не увидите данное сообщение. Мы рекомендуем вам пройти регистрацию, это расширит ваши возможности!</p> <p id="closeSystemMessage">Закрыть и больше не показывать!</p> </div> Вот примерно такой блок будет появляться на сайте, и нужно что бы после клика на #closeSystemMessage он исчезал на 30 дней. |
ivanfom,
читаем доку https://github.com/carhartl/jquery-cookie http://ruseller.com/lessons.php?id=667&rub=32 <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script>(function(c){"function"===typeof define&&define.amd?define(["jquery"],c):"object"===typeof exports?c(require("jquery")):c(jQuery)})(function(c){function p(a){a=e.json?JSON.stringify(a):String(a);return e.raw?a:encodeURIComponent(a)}function n(a,g){var b;if(e.raw)b=a;else a:{var d=a;0===d.indexOf('"')&&(d=d.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{d=decodeURIComponent(d.replace(l," "));b=e.json?JSON.parse(d):d;break a}catch(h){}b=void 0}return c.isFunction(g)?g(b):b}var l=/\+/g,e= c.cookie=function(a,g,b){if(1<arguments.length&&!c.isFunction(g)){b=c.extend({},e.defaults,b);if("number"===typeof b.expires){var d=b.expires,h=b.expires=new Date;h.setTime(+h+864E5*d)}return document.cookie=[e.raw?a:encodeURIComponent(a),"=",p(g),b.expires?"; expires="+b.expires.toUTCString():"",b.path?"; path="+b.path:"",b.domain?"; domain="+b.domain:"",b.secure?"; secure":""].join("")}for(var d=a?void 0:{},h=document.cookie?document.cookie.split("; "):[],m=0,l=h.length;m<l;m++){var f=h[m].split("="), k;k=f.shift();k=e.raw?k:decodeURIComponent(k);f=f.join("=");if(a&&a===k){d=n(f,g);break}a||void 0===(f=n(f))||(d[k]=f)}return d};e.defaults={};c.removeCookie=function(a,e){if(void 0===c.cookie(a))return!1;c.cookie(a,"",c.extend({},e,{expires:-1}));return!c.cookie(a)}});</script> <script> $(function() { var id = $.cookie("id"); //проверяем есть ли значение с ключом id if (id) $(id).hide(); //если есть скрываем блок с данным значением $("#closeSystemMessage").click(function() { $("#systemMessage").hide(); $.cookie("id", "#systemMessage", { expires: 30 }) // запоминаем значение id в ключе "id" на 30 дней }) }); </script> </head> <body> <div id="systemMessage"> <p>Вы больше не увидите данное сообщение. Мы рекомендуем вам пройти регистрацию, это расширит ваши возможности!</p> <p id="closeSystemMessage">Закрыть и больше не показывать!</p> </div> </body> </html> |
рони,
Кажется начал понимать) Спасибо вам за потраченное время, и+ |
Часовой пояс GMT +3, время: 07:19. |