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 :

fonction appliquant une class lors d'un clic


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de nicoaix
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2004
    Messages
    571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 571
    Par d�faut fonction appliquant une class lors d'un clic
    Bonjour,
    Dans le cadre d'un menu pour un site web, j'ai plusieurs �l�ments dans ce menu.
    Ce menu est constitu� par une liste (<ul><li>...</li></ul>)
    Par exemple:
    Accueil | Menu1 | Menu2
    Ce que je souhaite c'est appliquer un style lors du clic sur un �l�ment. Pour cela j'ai une class 'item_active' qui doit s'appliquer � l'�l�ment cliqu�. Le probl�me c'est de supprimer cette classe lors du clic sur un autre �l�ment. Je souhaite donc � chaque clic supprimer la class de tous les �l�ments de ma liste (<li></li>) et l'ajouter � l'�l�ment qui a �t� cliqu�.

    Comment faire pour supprimer la class 'item_active' de tous les �l�ments <li></li>?

    J'ai essay� �a:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function apply_class(e){
    	document.getElementByClassName('item_active').className = '';
    	if(e.className == ''){
    		e.className='item_active';
    	}
    }
    Avec un appel � cette fonction dans chaque <li></li>:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <li onclick="apply_class(this)"><a href="#"><span>Accueil</span></a></li>
    Ca supprime bien le style mais �a ne garde pas le style de ma classe 'item_active'.

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par d�faut
    Je crois que getElementByClassName n'existe pas.

    Et pourtant d'apr�s ce que tu d�cris c'est la partie qui fonctionne...

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307

  4. #4
    Membre �clair� Avatar de nicoaix
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2004
    Messages
    571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 571
    Par d�faut
    Citation Envoy� par Matthieu2000 Voir le message
    ?
    e.className renvoit le nom de l'�l�ment 'e' pass� en param�tre de la fonction.

    //

    getElementByClassName n'existe pas effectivement de mani�re native dans javascript (mais une impl�mentation de cette fonction existe).

  5. #5
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    il suffit d'aller voir dasn les contributions ou m�me je crois dasn le postit sur les librairies, il me semble que Le_Chomeur � post� une focntin getElementByClassName ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  6. #6
    Membre chevronn�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par d�faut
    Le plus simple finalement resterait que tu cr�e 2 classes, cr�e une classe item inactive, et tu risques de passer les problemes de ton code, enfin rien de vraiment certain la dedans.

  7. #7
    Membre �clair� Avatar de nicoaix
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2004
    Messages
    571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 571
    Par d�faut
    J'ai trouv�: Voici la fonction que j'utilise:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function apply_class(e){
    //Récupération de tous les éléments (des listes) de type 'li'
    	var li = document.getElementsByTagName('li');
    	for(var i=0; i< li.length-1; i++){
    		li[i].className = '';//Application d'un nom de classe vide à chaque élément
    	}
    //A la fin de la boucle:application de la classe active sur l'élément cliqué
    	e.className = 'item_active';
    }
    Merci � tous pour votre contribution.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Appel d'une classe lors d'un clic d'un boutton
    Par law56100 dans le forum Android
    R�ponses: 3
    Dernier message: 18/09/2014, 09h49
  2. R�ponses: 4
    Dernier message: 10/02/2005, 16h10
  3. [VB6]Valeurs une collection renvoyée par la fonction d'une classe
    Par jacma dans le forum VB 6 et ant�rieur
    R�ponses: 14
    Dernier message: 30/03/2004, 11h04
  4. R�ponses: 4
    Dernier message: 17/03/2004, 17h24
  5. R�ponses: 14
    Dernier message: 15/01/2004, 01h15

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