Javascript qui ne fonctionne qu'une seule fois.

Résolu/Fermé
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 - 12 mai 2016 à 17:58
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 - 12 mai 2016 à 20:18
Bonjour,

Voici mon problème.

J'ai un javascript qui ouvre un menu. on peut fermer et ouvrir ce menu sans problème mais si l'on clique sur un lien, cela amène correctement à l'endroit de la page (mon site est un onepager) mais ensuite, ce menu n'est plus déroulant. On a beau cliquer rien ne ce passe. Je voudrais que l'on puisse en tout temps pour réouvrir et cliquer sur un autre lien.

Merci de votre aide !

le html :

<div class="btn-navigation">
   <div class="barre"></div>
   <div class="barre"></div>
   <div class="barre"></div>
</div>

<div class="navigation">
   <ul>
      <li>
         <a href="#accueil" class="arrow anchorLink" id="anchor1">Accueil</a>
      </li>
      <li>
         <a href="#apropos" class="arrow anchorLink" id="anchor1">À propos</a>
      </li>
      <li>
         <a href="#services" class="arrow anchorLink" id="anchor1">Services</a>
      </li>
      <li>
         <a href="#psycho" class="arrow anchorLink" id="anchor1">La psychotherapie</a>
      </li>
      <li>
         <a href="#approche" class="arrow anchorLink" id="anchor1">Approche</a>        
      </li>
      <li>
         <a href="#contact" class="arrow anchorLink" id="anchor1">Contact</a>
       </li>
       <li>
         <a href="index-en.html">English</a>
       </li>
   </ul>
</div>



le css :

.btn-navigation {
			position: absolute;
			right: 30px;
			top: 32px;
			z-index: 600;
			cursor: pointer;
			display: block;
		}
		.btn-navigation .barre {
			margin-top: 3px;
			width: 20px;
			height: 4px;
			background-color: #000;
		}
		.btn-navigation .barre.white {
			background-color: #FFF;
		}
		.btn-navigation .barre.black {
			background-color: #000;
		}
		.navigation {
			position: fixed;
			right: 0;
			padding:50px 0 0 30px;
			background-color: #000;
			z-index: 500;
			width: 100%;
			height: 100%;
			transition: transform .6s; ease-in-out;
			-webkit-transition: transform .6s; ease-in-out;
			transform: translateX(100%);
			-webkit-transform: translateX(100%);
		}
		.navigation.isopen {
			transform: translateX(0%);
			-webkit-transform: translateX(0%);
		}
		.navigation.isclose {
			transform: translateX(100%);
			-webkit-transform: translateX(100%);
		}
		.navigation ul li {
			margin: 10px 0;
		}
		.navigation ul li a {
			color: #FFF;
			text-decoration: none;
			text-transform: uppercase;
		}



Le Js

$(document).ready(function(){
	$('.btn-navigation').click(function(){
    	$(this).find('.barre').toggleClass('white');
		$('.navigation').toggleClass('isopen');
	});
	
	$('.navigation a').click(function(){
		$('.btn-navigation').find('.barre').toggleClass('black');
		$('.navigation').toggleClass('isclose');
		
	});
});

2 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
12 mai 2016 à 18:02
Bonjour,

As tu regardé dans la console de ton navigateur (dans les outils de debogage de celui-ci... idéalement via le plugin FireBug pour FireFox) si il n'y avait pas des erreurs de script quand tu cliques ?

Et ... as tu examinés le code source de la page pour voir si les CLASS étaient bien comme il faut (là encore après le click...)
Perso .. j'ai arrété d'utilisé les toggleClass et préfère passer par des addClass et removeClass car j'ai eu trop de soucis....
peut-être est-ce ça.



0
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5
12 mai 2016 à 18:33
Oui tout est vérifié.

Le script fonctionne bien, en ligne, mais qu'une seule fois :/
Le script our ouvrir / fermer le menu, lui fonctionne sans aucun problème.
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016
12 mai 2016 à 18:40
Lorsque tu as ouvert/fermé une première fois .... a quoi ressemble le html généré sur la page ?
Peux tu nous en mettre une capture écran ? (je parle du code source html de la page par de son rendu visuel....)

Au passage .. mets nous aussi une capturé écran de la console du navigateur.

NB: Pour pouvoir poster des images sur ce forum.. il faut passer par le bouton "REPONDRE AU SUJET" et pas juste utiliser les "commentaires".
0
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5
12 mai 2016 à 19:00
Mon menu en question est un burger menu (menu avec les 3 barres).

le html généré change les classes de "barre" (le menu noir devient blanc) et le menu affiché change aussi pour être visible.
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
12 mai 2016 à 19:12
Hummm... isopen isclose en même temps ?
Regarde la troisième image
0
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5 > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
12 mai 2016 à 19:23
Haaaa, bien joué, je comprends l'erreur, effectivement, il ne peut rien faire comme ça.

Bien vu !

sais tu ce que je devrais mettre en Js pour qu'il remplace la classe et non en ajouter une ? :)
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
12 mai 2016 à 19:24
Regarde ma première réponse
0
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5 > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
12 mai 2016 à 20:18
C'est parfait, j'ai remplacé par .remove et tout fonctionne !!

Merci infiniment !
0