Как сделать так, чтобы две отдельные функции не мешали другой? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть предупреждение, которое появляется на странице впервые, создавая повара ie на Увольнении. Я создал функцию при загрузке страницы, чтобы проверить, существует ли повар ie, не отображать предупреждение и, если он не существует, отображать предупреждение. У меня также есть другая функция, чтобы проверить, отображает ли pageTitle «Тест» сообщение с предупреждением.

В данный момент мое предупреждающее сообщение отображается даже после нажатия кнопки "Отменить", и из-за второй проверки функции на странице pageTitle генерируется повар ie. Если я уберу проверку на pageTitle, я получу желаемый результат, который мне нужен, но сообщение появляется на всех страницах, когда я хочу, чтобы оно отображалось только с pageTitle = Test

. Я пытаюсь, чтобы обе проверки работали правильно например, if cookie exists do not show an alert, if it doesn't exist and the pageTitle = test show alert message

Первая функция

  $(window).on("load", function (e) {
    $('.preloader').fadeOut('slow');

    if (document.cookie.includes("isDismissed=true")) {

        document.body.classList.add("alert.container");
    } else {
        document.body.classList.add("show-alert");
    }
});

Вторая функция

 if("@pageTitle".indexOf("Test")  !== -1) {
       document.body.classList.add("show-alert");
    }

Ответы [ 3 ]

0 голосов
/ 30 марта 2020

У вас есть 2 варианта: проверить, существует ли повар ie во второй функции.

if("@pageTitle".indexOf("Test")  !== -1 && !document.cookie.includes("isDismissed=true")) {
   document.body.classList.add("show-alert");
}

Проверить, содержит ли заголовок страницы тест по первой функции.

$(window).on("load", function (e) {
  $('.preloader').fadeOut('slow');

  if (document.cookie.includes("isDismissed=true")) {
    document.body.classList.add("alert.container");
  } else if ("@pageTitle".indexOf("Test")  !== -1) {
    document.body.classList.add("show-alert");
  }
});

Если обе эти функции запускаются под нагрузкой, это единственный способ сделать это.

0 голосов
/ 30 марта 2020

вы забыли удалить класс из списка классов, он продолжит добавлять

$(window).on("load", function (e) {
    $('.preloader').fadeOut('slow');

    if (document.cookie.includes("isDismissed=true")) {
        $("body").removeClass("show-alert").addClass("alert.container");
    } else {
        $("body").removeClass("alert.container").addClass("show-alert");
    }
});
0 голосов
/ 30 марта 2020

Введите второй код как else if в первой функции.

$(window).on("load", function(e) {
  $('.preloader').fadeOut('slow');

  if (document.cookie.includes("isDismissed=true")) {
    document.body.classList.add("alert.container");
  } else if ("@pageTitle".indexOf("Test") !== -1) {
    document.body.classList.add("show-alert");
  }
});
...