JQuery Cookie ne fonctionne pas

J’ai eu une fonction javascript showHide (shID), qui est une fonction pour masquer div et afficher le contenu après avoir cliqué sur “Lire la suite”. Voici mon violon: Violon

après avoir ajouté JQuery Cookie à cette fonction, sa fonction semble afficher showHide (shID) disparue. Quelqu’un peut-il m’aider à résoudre ce problème? merci j’ai vraiment besoin d’aide. voici mon violon: violon

Je dois faire smtg comme ceci: Cliquez d’abord sur “readmore”, le contenu caché s’affichera, après le cookie défini et l’utilisateur reviendra pour visiter le contenu caché de ma page toujours affiché.

 

J’ai un peu modifié la logique du script: affiche le contenu lorsque showhide-... est défini sur 1 . De plus, j’ai ajouté un paramètre à la fonction setCookie : setCookie . Lorsque cela est false , le cookie n’est pas défini / modifié.

 function showHide(setCookie) { var shID = $(this).data("showhide") , $shEl = $("#" + shID) , $showHide = $("#" + shID + '-show') ; if ($shEl.is(":hidden")) { if (setCookie !== false) { jQuery.cookie("showhide-" + shID, 1); } $showHide.hide(); $shEl.show(); } else { if (setCookie !== false) { jQuery.cookie("showhide-" + shID, 0); } $showHide.show(); $shEl.hide(); } } jQuery(document).ready(function () { $("#example-show").on("click", showHide); if (jQuery.cookie("showhide-" + "example") == '1') { showHide.call($("#example-show").get(0), false); } }); 

Pour append une date d’expiration, passez simplement le troisième argument à l’appel $.cookie :

 var date = new Date(); var minutes = 30; date.setTime(date.getTime() + (minutes * 60 * 1000)); $.cookie("example", "foo", { expires: date }); 

(Reportez-vous à Comment expirer un cookie en 30 minutes avec jQuery? pour plus d’informations)

JSFIDDLE

Les noms des cookies sont sensibles à la casse et vous devez lire le même nom de cookie que vous avez défini auparavant. Dans votre cas, vous définissez jQuery.cookie("showHide-"+shID, 1) et vérifiez jQuery.cookie("showhide-" + "example") . “showHide-” et “showhide-” ne correspondent pas.

MODIFIER:

  if (document.getElementById(shID + '-show').style.display != 'none') { // Set cookie when button has been clicked jQuery.cookie("showhide-"+shID, 1); // ... } else { jQuery.cookie("showhide-"+shID, 0); // ... } if (jQuery.cookie("showhide-" + "example") == 1) { // Trigger button click if cookie is set $("#example-show").sortinggger("click"); }