मैं एक विशिष्ट div को टॉगल करने और कुकी के साथ सेटिंग सहेजने के लिए निम्न कोड का उपयोग करता हूं, ताकि यह परिवर्तन को बनाए रखे।

लेकिन किसी कारण से सेव कुकी सेक्शन ठीक से काम नहीं कर रहा है। ऐसा लगता है कि उदाहरण के लिए पिछले ब्राउज़र बटन का उपयोग करते समय कुकी सहेजी नहीं गई है।

मैं अपने वर्तमान कोड में क्या खो रहा हूं पूरी तरह से एक कुकी जोड़ें और इसे जांचें।

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">
0
JGeer 29 मार्च 2020, 17:27

1 उत्तर

सबसे बढ़िया उत्तर

लोकल या सेशनस्टोरेज का उपयोग करें, तो आपको इस बात की चिंता करने की जरूरत नहीं है कि कुकी सही है या नहीं

इस सरलीकृत संस्करण का प्रयास करें

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();
});
1
mplungjan 29 मार्च 2020, 17:17