alex-lenk
@alex-lenk
Разработчик сайтов

Почему не срабатывает условие jquery cookie при закрытии модального?

Через 2 секунды пребывания на странице, открывается модальное окно, и если я его закрыл или нажал на кнопку "заказать", то оно больше не всплывает, даже если перезагрузить страницу или перейти на другую (jquery cookie). Но условие, которое я написал, не срабатывает, вопрос почему?

jQuery.noConflict();

    jQuery(document).ready(function() {

      jQuery('.btn-primary').click(function() {
        jQuery.cookie('back_call', '1', {
          expires: 1,
          path: '/'
        });
      });
      jQuery('.close span').mouseover(function() {
        jQuery.cookie('back_call2', '2', {
          expires: 1,
          path: '/'
        });
      });

      function showmodal() {
        if (jQuery.cookie('back_call') != 1) {
          jQuery("#dialog").modal('show')
        } else if (jQuery.cookie('back_call2') != 1) {
          jQuery("#dialog").modal('show')
        }
      }
      setTimeout(showmodal, 2000);

    });

Можно посмотреть на чистой странице (не реклама) artlenk.ru/project/vip
  • Вопрос задан
  • 415 просмотров
Решения вопроса 2
rework
@rework
Помог ответ? В благодарность отметь его решением
Ошибка в логике условий.

1. При нажатии на "close", в cookie записывается "2", а в условии вы проверяется !=1. "2" всегда не равно "1", соответвенно вы всегда будете получать открытие окна.
2. По мимо этого условия работают последовательно, поэтому что бы окно не появлялось пользователю нужно будет нужно хотя бы раз закрыть окно и хотя бы раз кликнуть на "жду звонка"
Ответ написан
alex-lenk
@alex-lenk Автор вопроса
Разработчик сайтов
rework: спасибо большое, в общем вот так должно быть:

jQuery.noConflict();

    jQuery(document).ready(function() {

      jQuery('.btn-primary').click(function() {
        jQuery.cookie('back_call', '1', {
          expires: 1,
          path: '/'
        });
      });
      jQuery('.close span').mouseover(function() {
        jQuery.cookie('back_call2', '2', {
          expires: 1,
          path: '/'
        });
      });

      function showmodal() {
        if (jQuery.cookie('back_call') != 1 && jQuery.cookie('back_call2') != 2 ) {
          jQuery("#dialog").modal('show')
        } else {
          return setTimeout;
        }
      }
      setTimeout(showmodal, 2000);

    });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы