IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Menu javascript devrait rester ouvert..


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Par défaut Menu javascript devrait rester ouvert..
    Hello,

    Je suis en train de créer un site avec un menu en javascript qui est développable c'est-à dire que quand on clique sur une rubrique, les autres rubriques descendent et les submenu apparaissent.
    Le problème c'est que lorsque je clique sur un lien submenu, la page entière se recharge et le menu est à nouveau complètement fermé...
    C'est le cas en html et j'ai vu qu'en php c'est le même cas étant donné qu'il recharge égalemetn toute la page...
    J'ai vu en cherchant qu'il faudrait utiliser AJAX... ça à l'air compliqué et je me demandais si quelqu'un n'avait pas déjà réalisé un site où l'en-tête, le menu et le pied de page reste et qu'il n'y a que la partie centrale qui change?
    MErci


    Greg

  2. #2
    Membre chevronné
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Par défaut
    Tu n'auras pas forcément besoin d'ajax... Ajax te permettrait juste d'obtenir des informations du serveur sans recharger la page entière. Ce dont tu ne devrais pas avoir besoin si la quantités totale d'informations de ton menu n'est pas trop importante. Dans ce cas, une gestion dynamique du menu à l'aide de javaScript devrait être suffisante.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Par défaut
    Citation Envoyé par Eric Berger
    Tu n'auras pas forcément besoin d'ajax... Ajax te permettrait juste d'obtenir des informations du serveur sans recharger la page entière. Ce dont tu ne devrais pas avoir besoin si la quantités totale d'informations de ton menu n'est pas trop importante. Dans ce cas, une gestion dynamique du menu à l'aide de javaScript devrait être suffisante.
    Il existe donc des menu javascript qui lorsqu'on clique sur un lien, rechargent la page et se souviennent de l'architecture?
    J'ai ajouté mon code ci-dessous...
    N'y connaissant rien à javascript... quelqu'un pourrait-il m'aider pour ajouter les lignes nécessaires?

    Un grand merci d'avance

    Greg


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    if(!window.Node){
    	var Node = {ELEMENT_NODE : 1, TEXT_NODE : 3};
    }
    function checkNode(node, filter){
    	return (filter == null || node.nodeType == Node[filter] || node.nodeName.toUpperCase() == filter.toUpperCase());
    }
    function getChildren(node, filter){
    	var result = new Array();
    	var children = node.childNodes;
    	for(var i = 0; i < children.length; i++){
    		if(checkNode(children[i], filter)) result[result.length] = children[i];
    	}
    	return result;
    }
    function getChildrenByElement(node){
    	return getChildren(node, "ELEMENT_NODE");
    }
    function getFirstChild(node, filter){
    	var child;
    	var children = node.childNodes;
    	for(var i = 0; i < children.length; i++){
    		child = children[i];
    		if(checkNode(child, filter)) return child;
    	}
    	return null;
    }
    function getFirstChildByText(node){
    	return getFirstChild(node, "TEXT_NODE");
    }
    function getNextSibling(node, filter){
    	for(var sibling = node.nextSibling; sibling != null; sibling = sibling.nextSibling){
    		if(checkNode(sibling, filter)) return sibling;
    	}
    	return null;
    }
    function getNextSiblingByElement(node){
    	return getNextSibling(node, "ELEMENT_NODE");
    }
     
    var activeMenu = null;
     
    function showMenu(){
    	if(activeMenu){
    		activeMenu.className = "";
    		getNextSiblingByElement(activeMenu).style.display = "none";
    	}
    	if(this == activeMenu){
    		activeMenu = null;
    	}else{
    		this.className = "active";
    		getNextSiblingByElement(this).style.display = "block";
    		activeMenu = this;
    	}
    	return false;
    }
    function initMenu(){
    	var menus, menu, text, a, i;
    	menus = getChildrenByElement(document.getElementById("menu"));
    	for(i = 0; i < menus.length; i++){
    		menu = menus[i];
    		text = getFirstChildByText(menu);
    		a = document.createElement("a");
    		menu.replaceChild(a, text);
    		a.appendChild(text);
    		a.href = "#";
    		a.onfocus = function(){this.blur()};
    	}
    }
    if(document.createElement) window.onload = initMenu;
    function MenuDisplay()
    {
    	document.write('<ul id="menu">');
    		document.write('<li class="puce_noeud">Présentation');
    		  document.write('<ol>');
    		    document.write('<li class="puce_sous_cat"><a href=index.php?page=objectifs#>Missions et Objectifs</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href=index.php?page=accueil#>accueil</a></li>');
    		  document.write('</ol>');
    		  document.write('<div class="separateur"></div>');
    		document.write('</li>');
     
     
    	document.write('</ul>');
    }

  4. #4
    Membre chevronné
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Par défaut
    Dans ce cas, Ajax ne sera pas plus efficace, si tu recharges une page, Ajax ne sera pas à même de maintenir l'état.

    Citation Envoyé par gregius
    N'y connaissant rien à javascript... quelqu'un pourrait-il m'aider pour ajouter les lignes nécessaires?
    Et on n'est pas là pour faire les corrections à ta place, mais pour t'aider à les faire

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Par défaut
    Citation Envoyé par Eric Berger
    Dans ce cas, Ajax ne sera pas plus efficace, si tu recharges une page, Ajax ne sera pas à même de maintenir l'état.

    Et on n'est pas là pour faire les corrections à ta place, mais pour t'aider à les faire

    Même pas une idée des fonctions que je devrais utiliser?
    Vous êtes rudes... snif snif

Discussions similaires

  1. Menu déroulant en Javascript qui devrait rester développé
    Par cutpeter56 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/06/2008, 16h24
  2. "Assembler" les éléments d'un menu javascript (.js + .css)
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/06/2006, 10h15
  3. Probleme menu JAVASCRIPT
    Par nocy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/03/2006, 22h51
  4. menu javascript
    Par anthonyr45 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/03/2006, 10h37
  5. Ma fenêtre OpenGL ne veut pas rester ouverte
    Par Mynautor dans le forum OpenGL
    Réponses: 3
    Dernier message: 03/02/2005, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo