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 :

[DOM] fonction javascript dans html


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut [DOM] fonction javascript dans html
    Bonjour,
    Je suis en train de réaliser un site web et j'ai trouvé un joli script pour faire un menu avec des onglets (feuilles CSS).
    Le souci, c'est que j'ai besoin de l'améliorer un peu et je n'y arrive pas.

    J'ai un code dans un frame en haut du navigateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="header">
    <ul>
      <li id="current"><a href="index.html">Accueil</a></li>
      <li><a href="page2.html">page2</a></li>
        etc
    Ceci fait apparaitre 2 onglets (Accueil et page2) avec Accueil qui est l'onglet courant, donc dans une autre couleur.
    Mais si l'utilisateur clique sur l'onglet page2, il faut obligatoirement que je recharge le frame avec un autre fichier html qui contient id="current" en face de page2. Or, je n'ai pas envie de recharger ce truc la a chaque fois.

    Aussi, j'ai tenté de faire un fonction javascript qui permet de definir le current tout seul, mais je ne suis pas sur que ce soit possible car la fonction ne doit pas s'executer lors d'un evenement.

    J'ai fait (partie head):
    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
     
    <SCRIPT LANGUAGE="JavaScript">
     var idcurrent = 'index';
     
    function changerid(newval)
      {
    idcurrent=newval;
      }  
     
    function valeurid(a)
      {
      if (a=idcurrent) {return "current"}
      else {return ""}
      }   
    </SCRIPT>
    puis partie body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="header">
    <ul>
      <li id=valeurid('index');><a href="index.html" onclick="changerid('index');">Accueil</a></li>
      <li id=valeurid('page2');><a href="page2.html"  onclick="changerid('page2');>page2</a></li>
        etc
    Lors du clique sur un onglet, la valeur currentid est bien changé en mémoire, mais le id=valeurid('index'); ne fonctionne pas.

    Vous auriez une idée pour faire marcher mon système ?
    Merci.
    Julie

  2. #2
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Hello Julie, ton script css doit être modifié : généralement lorsque l'on utilise javascript pour modifier des données de style des éléments de la page on fait varier leur classe css. Actuellement le style affecté à ton onglet courant doit être désigné avec l'id de celui-ci, il faut donc que tu modifie cette définition en classe css. Ensuite tu pourras faire varier le style de l'onglet cliquer en lui donnant la class css "current" et une autre classe css par défaut pour les autres onglets.
    Généralement on ne redéfinit pas l'identifiant d'un élément comme tu essaies de le faire, et quand bien même on ne peut pas inclure du javascript comme tu a essayés : il faut que tu te renseignes sur les méthodes d'accès du DOM : des fonctions te permettent d'accéder aux attributs des éléments HTML et les modifiés si nécessaire : setAttribute(), getAttribute()
    Il ne doit pas être compliqué de modifié ton code pour répondre à tes besoins mais le mieux et que tu lises quelques cours sur ces concepts si tu veux être à même de réaliser ce que tu souhaites.
    Bon codage

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Merci, je vais chercher du coté CSS. Si je trouve un truc interessant, je viendrai le mettre ici.
    Bonne soirée.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    un test d'égalité en javascript c'est ==


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel fonction JavaScript dans HTML
    Par audrey1912 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/08/2012, 11h51
  2. fonction javascript dans formulaire html
    Par bumrush09 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/05/2009, 15h58
  3. Réponses: 5
    Dernier message: 01/02/2008, 15h29
  4. appeler une fonction javascript dans le code html
    Par kawther dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/05/2007, 16h40
  5. [DOM] lancer une fonction javascript dans un lien HTML
    Par cortex007 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/11/2006, 21h11

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