Как присвоить класс элементу после проверки cookies
Есть всплывающее окно, на главной, которое должно появляться лишь один раз за визит.
Вот разметка поп-апа: <div id="popup"> <!-- ЗДЕСЬ КОНТЕНТ POP-UP --> <a class="close_popup" title="Close" onclick="document.getElementById('popup').style.display='none';">CLOSE</a> </div> На этом поп-апе висит задержка, вот её код (на всякий случай): var delay_popup = 1000; setTimeout("document.getElementById('popup').style.display='block'", delay_popup); Как сделать так что бы после нажатию на кнопку закрытия поп-ап (class="close_popup") больше не показывать это окно в течении текущего визита? |
Цитата:
Серверный язык какой? |
Страницу рисует WP на php конечно же.
|
Цитата:
|
Тут наверное так не выйдет, по тому что этот блок поп-апа зашит в шаблон страницы и она генерируется каждый раз одинаковая.
Если я ошибаюсь скажите в чем. Но мне кажется что здесь нужно примерно так: 1. проверить наличие куки (например такой: first_visit = false) 2. если она там есть, то скриптом назначить диву #popup . 'display' , 'none' 3. а если её там нет, то после загрузки страницы сработает таймер и покажет поп-ап. 4. тогда на нажатие кнопки class="close_popup" нужно повесить запись этой самой куки first_visit = false без указания времени, что бы она обнулилась по закрытии браузера. Возможно я алгоритм скомкал, но примерно так. Вопрос в том как это реализовать? - Как на кнопку записать ещё одно действие с куками, кроме уже существующего там закрытия? - Как после того как проверили наличие куки назначить стиль диву #popup . 'display' , 'none', что бы он стал важнее чем в таймере окна? Ведь там свой отсчет идет и 'display none' может стать 'block'. Может есть проще решение и копаю не туда? |
Цитата:
Цитата:
|
Цитата:
<a class="close_popup" title="Close" onclick="document.getElementById('popup').style.display='none'; document.cookie = 'first_visit = false';">CLOSE</a> Но, почему то кука записывается еще до того как открылось окно поп-апа. Цитата:
В данный момент я могу и обнулить таймер и\или обернуть этот весь блок ещё в один див ему назначить display=none. (как вариант) Но все же первичный вопрос остается не раскрытым - если я правильно на кнопку повесил запись куки, то почему она записывается ещё до срабатывания события onclick на этой кнопке? |
Цитата:
Цитата:
|
BETEPAH,
Спасибо за разжевывание, сейчас попробую. А записи именно в этот кукис нет выше нигде, это же я ему имя дал и его же валуй записал, он нигде выше не может быть... с этим непонятно. |
Что делаю не правильно?
alert( document.cookie ); $(document).ready(function () { if(cookie.get('first_visit') == null) { var delay_popup = 1000; setTimeout("document.getElementById('popup').style.display='block'", delay_popup); }; }); Почему не работает? Консоль кричит, что кукис не найден - if(cookie.get('first_visit') == null) { А алерт показывает что там есть этот кука. Где ошибка? |
Часовой пояс GMT +3, время: 01:50. |