Переключить div и установить повар ie, чтобы сохранить jQuery - PullRequest
0 голосов
/ 29 марта 2020

Я использую следующий код для переключения заданного значения c div и сохраняю настройку с помощью параметра cook ie, чтобы сохранить изменения.

Но по какой-то причине команда save cook ie раздел не работает хорошо. Похоже, что повар ie не сохраняется, например, при использовании предыдущих кнопок браузера.

Чего мне не хватает в моем текущем коде, чтобы идеально добавить повар ie и проверить его.

function getCookieValue(a) {
  var b = document.cookie.match('(^|;)\\s*' + a + '\\s*=\\s*([^;]+)');
  return b ? b.pop() : '';
}

$(document).ready(function() {

  var redEl = $('input#togglebtw');

  if (document.cookie.indexOf('togglebtw=') != -1) {
    redEl.prop("checked", $.parseJSON(getCookieValue("togglebtw")));
  }

  if (redEl.prop("checked")) {
    $(".price-container .price-including-tax").hide();
    $(".price-container .price-excluding-tax").show();
  } else {
    $(".price-container .price-excluding-tax").hide();
    $(".price-container .price-including-tax").show();
  }

  $('input#togglebtw').click(function() {

    var expiryDate = new Date();
    expiryDate.setDate(expiryDate.getDate() + 31);
    expiryDate = expiryDate.toUTCString();

    if ($(this).attr("class") == "btwToggler") {
      if (redEl.prop("checked")) {
        $(".price-container .price-including-tax").hide();
        $(".price-container .price-excluding-tax").show();
      } else {
        $(".price-container .price-excluding-tax").hide();
        $(".price-container .price-including-tax").show();
      }
      document.cookie = "togglebtw=" + this.checked.toString() + "; expires=" + expiryDate;
    }
  });
});
<input id="togglebtw" class="btwToggler" type="checkbox">

1 Ответ

1 голос
/ 29 марта 2020

Используйте local или sessionStorage, тогда вам не нужно беспокоиться о готовке ie правильно или нет

Попробуйте эту упрощенную версию

const checkBTW = function() {
  const checked = $('#togglebtw').is(":checked");
  $(".price-container .price-including-tax").toggle(!checked);
  $(".price-container .price-excluding-tax").toggle(checked);
  localStorage.setItem("togglebtw",checked?"true":"false");
};
$(function() {
  $('#togglebtw')
    .on("click",checkBTW)
    .prop("checked",localStorage.getItem("togglebtw")==="true"); 
  checkBTW();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...