NKWolf
Messages postés38Date d'inscriptionsamedi 28 août 2004StatutMembreDernière intervention11 janvier 2007
-
20 févr. 2006 à 17:11
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
21 févr. 2006 à 15:45
Bonjour tout le monde
voilà je suis actuellement sur un menu javascript et j'aurai besoin de votre aide
les sous-menu s'ouvre au clique sur le menu, ce menu fonctionne actuellement correctement seulement voilà
1) il n'a pas compatible avec tout les navigateur
2) les sous-catégorie ne ce referme sauf si vous cliquez sur un autre menu
je voudrais donc avec votre aide :
1) le rendre compatible avec tous les navigateur
2) premetre la fermeture des sous-menu au second clic sur le titre menu
Ceci n'est pas ma source, je l'ai récupérer il y'a quelque temps sur un site dont je ne pourrait plus vous dire le nom
entre head et /head
<script type="text/javascript">
<!--
window.onload=montre;
function montre(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';}
}
//-->
</script>
entre body et /body
<!-- table contenant le menu -->
<!-- premier menu -->
----
Menu Titre 1,
<!-- contenu du menu -->
----
lien 1
lien 2
etc...,
----
<!-- deuxième menu -->
Menu Titre 2,
<!-- contenu menu 2 -->
----
lien 3
lien 4
etc...
celà nous donne
Menu Titre 1
Menu Titre 2
dont le contenu s'ouvre au clic et fonctionne parfaitement, vous remarquerez que je n'utilise pas les div mais les tableaux ( tr & td ) pour une question de pratique, j'ai déjà vue les script permettant ce que je désire mais chaque lien de menu doit être définit à chaque fois et dont le résultat ce bug si vous mettez du code html, ici je peut donc mettre ce que je veut dans mon menu et l'associer à une base de données très simplement ( ce que je fait pour l'instant et fonctionne parfaitement avec des informations tel statistique, compte, images partenaires, etc...)
pourriez-vous m'aider à le rendre compatible avec tout les navigateur et permettre la fermeture au second clic
Je vous remercie d'avance de votre aide, d'autant plus que je commence seulement avec le javascript ( je suis plus coter PHP - Mysql )
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 21 févr. 2006 à 07:27
Bonjour,
1) le rendre compatible avec tous les navigateur
fonctionne avec IE,FF... tous ? c'est trop pour moi.
2) premetre la fermeture des sous-menu au second clic sur le titre menu
dans la boucle, si le style est block le mettre hidden, par exemple ?
for (var i = 1; i<=10; i++) {
ça limite donc à 10 lignes,
while document.getElementById('smenu'+i) { } en faisant jouer le i
permettrait de pas être limité, par exemple aussi.
onclick="javascript:montre(.... c'est un pléonasme,
onclick="montre(... suffit.
NKWolf
Messages postés38Date d'inscriptionsamedi 28 août 2004StatutMembreDernière intervention11 janvier 2007 21 févr. 2006 à 11:30
oki
comme je débute vais essayer de comprendre lol, donc
plutot que onclick="javascript:montre(..
je met onclick="montre(....
effectivement ca marche aussi :D very merci pour cette astuce qui est plus une règle je pense non ?
oui j'ai retirer le 10 et ajouter une variable global " nbMenu " indiquant le nombre de menu et donc le nombre de boucle maximum, ce nombre est récupérer grace à une requete sql et fonctionne aussi :D
pour ce qui est des navigateur je me suis mal expliquer je voudrais pas tous c'est beaucoup trop, juste les plus utiliser
IE, Mozilla, NS, etc.. les plus utiliser quoi
mais j'ai lu quelques part que
document.getElementById
était compatible avec tous les navigateur, infos ou intox ?
pour le fait de masquer le sous-menu je m'explique
mais sous-menu s'ouvre au click, je voudrais pouvoir les fermer ( masquer ) avec un autre click comme pour le menu xp
je met ma source actuel, attention j'ai du intéragir avec PHP pour récupérer le nombre de menu et mon script ce retrouve dans un echo mais je vous rassure il fonctionne bien sans erreur :D
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 21 févr. 2006 à 12:57
>>merci pour cette astuce qui est plus une règle
pas une astuce, une règle je ne sais pas, mais inutile, ça oui
>>document.getElementById était compatible avec tous les navigateurs
IE,FF, NetScape,Opera ( je pense )... les autres ???
>>je voudrais pouvoir les fermer ( masquer ) avec un autre click
je nous cite :
2) premetre la fermeture des sous-menu au second clic sur le titre menu
dans la boucle, si le style est block le mettre hidden, par exemple ?
echo ... chacun ses gouts , moi je préfère :
<script type="text/javascript"><!--
window.onload=montre;
function montre(num) {
nbMenu = <?php echo $nb_menu; ?>;
var mn = document.getElementById('smenu' + num);
......
ça me semble plus lisible, mais ce n'est que mon avis,
qui ne vaut pas grand chose et encore une fois,
chacun fait comme il lle sent, il n'y a pas de règles
ni de vérité absolue....
NKWolf
Messages postés38Date d'inscriptionsamedi 28 août 2004StatutMembreDernière intervention11 janvier 2007 21 févr. 2006 à 14:04
dans la boucle, si le style est block le mettre hidden, par exemple ?
ben quand tu dit le mettre hidden c'est le masquer ?
le problème c'est que je ne sais pas du tout comment ( dans la boucle ) savoir si il est block ou pas :s
c'est vrai que ta facon parait plus lisible sur ce chti bout de code, mais mon fichier contient près de 1500 lignes et la ca devient galère avec tout les <? et ?> ici l'avantage est que je ne suis pas obliger à chaque fois d'ouvrir et fermer la balise php ni devoir à chaque fois déclarer l'echo, mais comme tu as dit tout les gouts sont dans la nature :D
sinon pour le problème de compatibilité, j'ai patoger un peut sur le net avec mon ami google et effectivement " document.getElementById " est compatible avec les navigateur les plus utilisé donc ce problème est résolu
il ne me reste plus qu'a comprendre comment savoir si le sous-menu est block ou non, en gros oui au second clic il devrait être hidden, sauf que hidden n'est pas approprier pour mon script car les balise <tr> et <td> ne possède pas l'attribut hidden
en clair un clic sur le menu ouvre le sous-menu et un second clic sur ce meme titre le referme
encore merci bultez de ton aide, et encore bravo pour " le site qu'il est à toi ", j'ai déjà apris quelques truc merci, par contre j'ai voulu laisser un commentaire sur ton site mais il ne le prend pas ( j'ai essayer à 3 reprise mais sans succès )
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 21 févr. 2006 à 15:45
>>je ne sais pas du tout comment ( dans la boucle ) savoir si il est block ou pas
"il suffit" ( oui je sais c'est agaçant d'entendre ça ) de le tester
if ( document.getElementById('smenu'+i).style.display=='block' )
et ce n'est pas hidden ( valable pour visibiliyt mais bien none )
>>j'ai déjà apris quelques trucs
tant mieux, et merci du retour.
>>j'ai voulu laisser un commentaire sur ton site
il va falloir que je contrôle, ça marchait, j'ai du faire une c%ùµ*¤¤@