Bonjour a tous !

Voilà mon problème : j'ai un menu qui fonctionne parfaitement, cependant, un problème persiste et je ne sais comment le résoudre.

Voici le code en question :

<ul id="nav" >
    <li class="cat-item cat-item-101"><a href="http://voiture-piece.fr/allumage/" title="Voir tous les articles classés dans Allumage">Allumage</a>
        <ul class="children">
            <li class="cat-item cat-item-121 current-cat-parent"><a href="http://voiture-piece.fr/allumage/bougies-dallumage/" title="Voir tous les articles classés dans Bougies d'allumage">Bougies d'allumage</a>
            </li>
            <li class="cat-item cat-item-122"><a href="http://voiture-piece.fr/allumage/bougies-de-prechauffage/" title="Voir tous les articles classés dans Bougies de préchauffage">Bougies de préchauffage</a>
            </li>
            <li class="cat-item cat-item-123"><a href="http://voiture-piece.fr/allumage/cables-dallumage/" title="Voir tous les articles classés dans Câbles d'allumage">Câbles d'allumage</a>
            </li>
        </ul>
    </li>
</ul>

Je souhaite que lorsqu'une div possède la class current-cat-parent, sa div parent ait un attribut display block (dans mon cas la div ul.children).

J'ai tenté ceci :

jQuery('li.current-cat-parent').parent('ul.children').css('display', 'block'));

Mais aucun résultat.

Si quelqu'un voit mon erreur je lui en serait reconnaissant.

Merci et bonne journée.

7 réponses


Tackacoder
Réponse acceptée

J'ai testé avec ça, et ça fonctionne

jQuery(function($) {
        $('li.current-cat-parent').parent('ul.children').css('display', 'block');
    });

Bonjour,
Tu as une fermeture de parenthèse en trop au bout de ta ligne.
Je sais pas avec quel navigateur tu bosses, mais quand tu a des pb avec du js, regarde les erreurs possibles dans la console.

jobea
Auteur

Merci j'ai corrigé. Cependant le problème persiste toujours :( .

Bonjour,

Si je ne me trompe pas, inutile de préciser quoi que ce soit dans la fonction parent().
Une balise ne peut avoir qu'un seul parent de toute façon si je ne me trompe pas.

jobea
Auteur

J'avais essayé sans (j'ai retenté à l'instant) et ça ne marchait quand même pas. Je me demande si le problème n'est pas lié au fait que ma <li> possède 3 class :

<li class="cat-item cat-item-121 current-cat-parent">

Sinon il y a ça qui devrait fonctionner.

jQuery(function($) {
    $('li.current-cat-parent').parents('ul.children').eq(0).css('display', 'block');
});
jobea
Auteur

Merci exothermique, ça fonctionne !
J'ai encore beaucoup à apprendre sur jQuery.

Merci à tous de m'avoir aidé.

Bonne journée.