Bonjour a tous

J'essaie d'intégrer un script permettant de contracter (collapse) des catégories de forum.

Alors il fonctionne mais quand je recharge la page, il ne garde pas les préférences de l'utilisateur.

Voici le script:

<script type="text/javascript">
<!--
$('.categoryNodeInfo').prepend("<div class='showhideNodes hideNodes'>{xen:phrase showhideNodes_collapse}</div>");
var showhideNodesCookie = $.getCookie('showhideNodes');
 var showhideNodesArray=new Array();
if (showhideNodesCookie) {
 showhideNodesArray = showhideNodesCookie.split(",");
 $.each(showhideNodesArray,function(){
        var selector = 'li#' + this;
        $(selector+' ol.nodeList').hide();
        $(selector+' .showhideNodes').toggleClass('showNodes');
        $(selector+' .showhideNodes').toggleClass('hideNodes');
        $(selector+' .showhideNodes').text('{xen:phrase showhideNodes_expand}');
 });
}
$('.showhideNodes').click(
function() {
if ($(this).text() == '{xen:phrase showhideNodes_collapse}') {
    $(this).parent().next().slideUp();
    $(this).text('{xen:phrase showhideNodes_expand}');
    //if($.inArray(this,showhideNodesArray) != -1){
        showhideNodesArray.push($(this).parent().parent().attr('id'));
        $.setCookie('showhideNodes',showhideNodesArray.join(","));
    //}
}
else if ($(this).text() == '{xen:phrase showhideNodes_expand}') {
    $(this).parent().next().slideDown(); 
    $(this).text('{xen:phrase showhideNodes_collapse}');
        var remove = $(this).parent().parent().attr('id');
        showhideNodesArray.splice($.inArray(remove,showhideNodesArray),1);
        $.setCookie('showhideNodes',showhideNodesArray.join(","));
}
$(this).toggleClass('showNodes');
$(this).toggleClass('hideNodes');
});
//-->
</script>

Pourtant, les variables cookie sont bien présentes.

Alors d'après vous, pourquoi cela ne fonctionne pas ?

1 réponse


Bonjour,
il me semble pas que jquery gère nativement les cookies.. il faut un plugin de mémoire.