11523 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

à partir du tuto menu deroulant http://www.alsacreations.com/articles/deroulant/

Le menu à cette structure:
Rubrique 1
Rubrique 2
...Section 2.1
...Section 2.2
...Section 2.3
Rubrique 3
Rubrique 4
...Section 4.1
...Section 4.2
Rubrique 5

Je voudrais que la rubrique 2 reste deroulée si je suis sur une page Section 2.x, ou la rubrique 4 si je suis dans une section 4.x



       <dt onclick="javascript:montre();"><a href="rub1.php">Rubrique 1</a></dt>
            <dt onclick="javascript:montre('smenu2');">Rubrique 2</dt> 
            <dd id="smenu2">
               <ul>
                  <li><a href="sec21.php">Section 2.1</a></li>
                  <li><a href="sec22.php">Section 2.2</a></li>
                  <li><a href="sec23">Section 2.3</a></li>
               </ul>
            </dd>	
            <dt onclick="javascript:montre();"><a href="#">Rubrique 3</a></dt>


Sur ma page section 2.1 j'ai remplacé le
onclick="javascript:montre('smenu2');"
par
onload="javascript:montre('smenu2');"

ca ne change rien Smiley bawling Smiley bawling Smiley bawling
Modifié par irm.tux (26 Apr 2005 - 00:26)
Administrateur
Salut irm.tux et bienvenue ici.

Juste en passant, l'adresse de ton lien n'est plus à jour.
La nouvelle adresse est celle-ci
Modifié par Raphael (28 Mar 2005 - 21:29)
Salut tout le monde

J'ai le même problème. Y a pas moyen de trouvé une soluce ? j'ai déjà fais pleins de recherche sur ce forum, j'ai fais des tests en modifiant à gauche et à droite des petits trucs mais rien à faire.

Le truc qu'il faudrait c'est qu'il ouvre un menu à l'ouverture de la page.. et s'il n'y a pas de variables dans le get il n'en affiche pas.. je vais m'y remettre demain.

Aidez-nous svp?

A+
Bonjour,
Sur la page section 2.1, as-tu éssayé de remplacer
window.onload=montre;

par
window.onload=montre('smenu2');
?
comar91 a écrit :
window.onload=montre('smenu2');
?


Cette synthaxe n'est pas valable car l'argument ne sera pas récupéré, il faut faire :
window.onload=function(){montre('smenu2');}

Smiley cligne
ça marche merci beaucoup c'est cool.

Malheureusement je ne comprends pas pourquoi l'argument ne sera pas récupéré dans la première soluce ?

et 2ème malheureusement je ne peu pas passer le post en Résolu car je n'en suis pas l'auteur. mais si un admin peu le faire car effectivement ce poste est résolu.
Encore merci
Michael
Je suis parvenu a une autre solution un peu plus barbare (désolé de ne pas avoir posté + tot mais soucis de connexion oblige)

dans mon lien je place un ID
<li><a href="toto.php?ID=smenu2">toto</a></li>

et à la fin du menu je rajoute
window.onload=montre('<?=$_GET[ID]?>')
J'ai un problème presque semblable......Et peut-être suis-je simplement "slow" Smiley confused

Mon menu est un INCLUDE....Donc je ne peux pas lui demandé d'afficher une section en particulier dans mon menu....

Je trouve la solution de IRM.TUX intéressante, mais je n'arrive pas à la faire fonctionner.....Il affiche toute les section!

Voici trois fichiers concernés à titre d'exemple:

MENU.PHP

<SCRIPT LANGUAGE="JavaScript" SRC="scripts/xyphoScripts.js"></SCRIPT>
	<DIV id="navGauche">
	<dl id="menu">
		<dt onclick="javascript:show('smenu1');"><a  ref="#">L'Association</a></dt>
			<dd id="smenu1">
				<ul>
					<li><a href="association.php[#red]?id=smenu1[/#]">Notre mission et logo</a></li>
					<li><a href="ass25.php">25<sup>e</sup> anniversaire</a></li>
					<li><a href="assPriseDecision.php">Prises de position & mémoires</a></li>
					<li><a href="assCa0405.php">C.A. 2004-2005</a></li>
					<li><a href="assPrix.php">Marques de reconnaissance</a></li>
					<li><a href="assConstitution.php">La constitution et les règlements de l'Association</a></li>
				</ul>
			</dd>	
		...
	</dl>
	</DIV>
	


xyphoScripts.js

window.onload=show;

function show(id) {
	var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
			if (document.getElementById('smenu'+i)) {
					document.getElementById('smenu'+i).style.display='none';
					}
			}
	if (d) {
		d.style.display='block';
		}
	}


PAGE DE CONTENU.....blabla.php
...
<body>
<center>
<a name="top"></a>
<DIV id="corp">
	<!--Navigation de gauche-contextuel*******************************-->
	[b]<? include("menu/menu.php") ?>[/b]
	
	<DIV id="page">
		<DIV id="id" class="congres">
 			<!--Navigation Principale***********************************-->
			<? include("menu/menuPrincipal.php") ?>
	
			<!--Titre de la page-->
			<DIV id="titrePage">CONGRÈS</DIV>
		</DIV>
...


Donc.....Une fois que j'ai passé le id dans le URL......
Comment le récupérer et le faire fonctionner?
apres le </div> de <div id="navgauche"> essais de rajouter en te basant sur ma solution du post précédent:
  <script language="JavaScript">window.onload=function(){montre('<?=$_GET[ID]?>');}</script>


(j'ai lu en diagonale)

De mon coté je suis confronté à un serieux probleme que m'a fait remarqué un ami qui a une tres haute resolution sur son 22" avec ie, ainsi que sur un portable en 16/10
upload/1329-screenshot.jpg

la partie deroulée du menu s'allonge...
ca marche sous ie6 avec des resolutions standards et bien quelque soit la resolution avec ff
Modifié par irm.tux (21 Apr 2005 - 11:11)
Merci beaucoup pour le tuyau......
C'est vraiment fantastique!

Pour ton problème.....
As-tu précisé dans ton CSS ou la page un "line-height:??px;" et/ou un "vertical-align:top;" ?
non mais je vais tester, enfin des que possible, enfin des que j'ai acces a un des pcs qui m'a fait decouvrir le bug.
(Je code sous une machine linux, donc firefox et aucun soucis...
et ma machine sous windows avec ie 6 ne va pas au dela de 1280x960)

(content que ton probleme d'id soit resolu)
Modifié par irm.tux (22 Apr 2005 - 20:17)
Comment faire que ton truc fonctionne avec une syntaxe des liens comme celle-ci:

<li><a href="index.php?page=conseil">>> Conseil communal</a></li>
irm.tux a écrit :
Je suis parvenu a une autre solution un peu plus barbare (désolé de ne pas avoir posté + tot mais soucis de connexion oblige)

dans mon lien je place un ID
<li><a href="toto.php?ID=smenu2">toto</a></li>

et à la fin du menu je rajoute
window.onload=montre('<?=$_GET[ID]?>')


Bonjour,

Je ne comprend pas où dans mon code je dois insérer:
window.onload=montre('<?=$_GET[ID]?>')


Et entre quelles ballises dois je l'insérer?

Merci d'avance,

Subran

NB: C'est pour mon menu verticale à gauche de mon site mon site
Modifié par subran (27 Apr 2006 - 21:52)