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é.
Congratulations! You've found the magic hidden text! Clicking the link below will hide this content again.
- Les cookies ne sont pas définis à partir d’une demande AJAX interdomaine
- Pourquoi tous mes cookies jQuery arrivent-ils indéfinis?
- Jquery Ajax Appelant pas de cookie
- Comment encoder un cookie avec javascript / jquery?
- Afficher une DIV uniquement la première fois qu’un site Web est chargé avec localStorage
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"); }