11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour/Bonsoir, je viens faire appelle à vous car je commence à sécher.. J'ai un petit problème, suite à un menu horizontale à 3 niveaux, chacun des niveau est cliquable et amène à une page avec les grands titres, je donne un exemple :

Si on clique sur une un onglet du premier niveau (ici : comptabilité/gestion/paie), on arrive sur une page avec ces 3 grands titres et tous les sous-titres leurs étant liés.

J'espère être claire. Mais voilà, haha ! C'est là que mon problème surviens, j'ai donc utilisé du javascript pour l'animation d'ouverture des grands titres. Tout fonctionne parfaitement bien SAUF quand on clique au second niveau ! Là on arrive sur la page (normal quoi) MAIS il m'écrit 2 fois "comptabilité" (idem pour tous les autres qui sont à ce niveau) au lieu d'une seule, quand je clique sur le premier il m'affiche les sous-titres du grand un petite seconde avant de tout refermé quant au second, hahaha lui ne sert strictement à rien.

Donc voilà, en inspectant le code source j'ai identifié le problème mais.. Moi et le javascript on est pas très copain.

Voilà la première partie du javascript :

<script type="text/javascript">
									var cache = false;
							 
									function affCach(){
										if (cache){
											cache = false;
											document.getElementById("tab").style.display = "block";
										} else {
											cache = true;
											document.getElementById("tab").style.display = "none";
										}
									}

								</script>


Et la seconde avec la div (qui est en double) :

<div id="owe"><label id="container<%=idcat %>"><h2><%=rsc("nom_categorie")%></h2></label></div>
										
								<script type="text/javascript">											
									jQuery(document).ready(function(){
										jQuery(container<%=idcat %>).click(function(){
										jQuery(".message<%=idcat %>").toggle(250);
										});
									});
									
								</script>


Pour le css :

.messagesCache {
	display: none;
	background-color: white;
	width: 80%;
	margin-left: 5%;
}


Merci d'avance de votre aide, je compte sur vous cher(e) ami(e)s.

Cordialement, W4iiZ.
Bonjour,

Je ne suis pas spécialiste, mais j'ai des doutes sur l'écriture jQuery(container<%=idcat %>)
Jquery l’interprète correctement ?
Ce ne serait pas jQuery("#container<%=idcat %>") ?
Oui, probablement mais même en changeant cela, il ne se passe rien de spécial.
Merci tout de même pour l'aide apporté.

W4iiZ.
Bonsoir W4iiZ,
Peux-tu envoyer plus de code ?

J'imagine que l'élément avec l'id "tab" c'est un onglet?!

Cette séquence gére un évènement click sur le label :
jQuery(container<%=idcat %>).click(function(){
jQuery(".message<%=idcat %>").toggle(250);
});
pour afficher un tag avec la class "message" !?

L'erreur la plus courante avec jquery c'est d'avoir un sélecteur qui te sélectionne trop de chose...

Si tu peux en envoyer plus je regarderai...

Bonne soirée
Bonjour GJboba,
Oui je peux, mais derrière c'est beaucoup d'asp.

<script type="text/javascript">
									var cache = false;
							 
									function affCach(){
										if (cache){
											cache = false;
											document.getElementById("tab").style.display = "block";
										} else {
											cache = true;
											document.getElementById("tab").style.display = "none";
										}
									}

								</script>
							
							

								<h1><%=rsc("nom_categorie")%></h1>

								<%case 2%>

										<div id="owe"><label id="container<%=idcat %>"><h2><%=rsc("nom_categorie")%></h2></label></div>
										
								<script type="text/javascript">											
									jQuery(document).ready(function(){
										jQuery("#container<%=idcat %>").click(function(){
										jQuery(".message<%=idcat %>").toggle(250);
										});
									});
									
								</script>
									
								<%case 3%>
								

										
										<div id="owe"><label id="container<%=idcat %>"><h3>> <%=rsc("nom_categorie")%></h3></label></div>
									
								<script type="text/javascript">											
									jQuery(document).ready(function(){
										jQuery(container<%=idcat %>).click(function(){
										jQuery(".message<%=idcat %>").toggle(250);
										});
									});
									
								</script>


Après c'est vraiment que de l'asp.
Je peux te donner le lien du site pour que tu comprenne mieux (bien entendu il est pas fini fini) :
http://test.bt-formation.fr/formation-comptabilite-strasbourg-mulhouse-colmar.html
Je supprime le lien une fois une réponse obtenu.
Merci pour ton aide,

W4iiZ.

Edit : Je viens de voir une erreur, j'utilise 2 fois le même ID, c'est corrigé.
Modifié par W4iiZ (21 Mar 2017 - 09:28)