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 :

modifier dynamiquement le style lors d'une selection


Sujet :

JavaScript

  1. #1
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut modifier dynamiquement le style lors d'une selection
    bonjour,

    j'ai un tableau..avec la possibilité de séléctionner une ligne..
    lors de la selection, le style par défaut de mon composant met toute la ligne en bleu et le contenu devient invisible..
    comment modifier en javascript le style selectionné..

    j'ai testé ceci mais ça ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var row = document.getElementById('id);
    row.style.backgroundColor='#FFDEDE';

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    il manque une quote ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('id_du_tr').style.backgroundColor='#FFDEDE';
    devrait fonctionner ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    il manque une quote ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('id_du_tr').style.backgroundColor='#FFDEDE';
    devrait fonctionner ...

    A+
    merci..
    l'id c'etait juste pour l'exemple, je recupere l'element avec une methode d'un framework ajax..
    c'etait encore plus con que ça. je restais sur le meme IE et il n'a pas pris le dernier fichier js..

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    désolè. au fait, je voudrais changer le background juste à la selection d'une ligne , la solution ci-dessus garde la couleur meme quand la ligne n'est plus selectionnée..

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    désolè. au fait, je voudrais changer le background juste à la selection d'une ligne , la solution ci-dessus garde la couleur meme quand la ligne n'est plus selectionnée..
    L'instruction que tu nous donnes est pour le moins ... sortie de son contexte
    En supposant que tu la lances sur onclick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var couleur_unselect = '#FFFFFF';
    var couleur_select = '#FFDEDE';
    var couleur_ligne = document.getElementById('id_du_tr').style.backgroundColor;
    couleur_ligne = (couleur_ligne == couleur_select) ? couleur_unselect : couleur_select;
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    L'instruction que tu nous donnes est pour le moins ... sortie de son contexte
    En supposant que tu la lances sur onclick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var couleur_unselect = '#FFFFFF';
    var couleur_select = '#FFDEDE';
    var couleur_ligne = document.getElementById('id_du_tr').style.backgroundColor;
    couleur_ligne = (couleur_ligne == couleur_select) ? couleur_unselect : couleur_select;
    A+

    ouii mais ça fait la meme chose ..

    on peut faire dynamiquement le onClick dans le javascript..?

    ma fonction ressemble a onClick..mais je n'ai pas la main dessus..je ne epux pas la modifier je suis obligé de surcharger le onClickj dans le javascript..

    mercii

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    ouii mais ça fait la meme chose ..
    Non : là, si tu reclique, (pour déselectionner, a priori) ça doit remettre une autre couleur ...

    Quant au reste, je n'ai pas vraiment compris

    Des précisions ou un bout de code complémentaires seraient bienvenus ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Non : là, si tu reclique, (pour déselectionner, a priori) ça doit remettre une autre couleur ...

    Quant au reste, je n'ai pas vraiment compris

    Des précisions ou un bout de code complémentaires seraient bienvenus ...

    A+
    non le code ne fait rien...
    tu voulais ajouter peu etre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var element = document.getElementById('id');
     element.style.backgroundColor= couleur_ligne ;
    ceci laisse la ligne selectionner sans la modifier..

    le context: j'utilise une dataGrid avec des fonctionnalité ajax, avec le style de ma page la séléction d'uen ligne cache le texte..je peux definir une fonction java script sur le listener de l'evenement onSelect et la je peux recuperer l'objet <tr>..mais je n'arrive pas modifier la couleur juste lors de la selection. ..
    j'espère que c'est assez clair..c'est de la bidouille, mais je trouve pas comment modifier le style de la libraire..

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    non le code ne fait rien...
    Hum ... autant pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var couleur_unselect = '#FFFFFF';
    var couleur_select = '#FFDEDE';
    var couleur_ligne = document.getElementById('id_du_tr').style.backgroundColor;
    document.getElementById('id_du_tr').style.backgroundColor = (couleur_ligne == couleur_select) ? couleur_unselect : couleur_select;
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    re..bonjour..
    je pense que je n'ai pas bien expliqué le probleme..en fait, quand je séléctionne la ligne, j'ai besoin de changer le style juste pour l'evenement du click.là je change le style pour la ligne..et le nouveau style reste actif apres le click..
    sur un click d'une autre ligne on ne va pas garder en memoire les lignes précedement selectionnées..c'est pour cela que je ne comprend pas le test ci-dessus...

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Comme quoi, on ne précise jamais assez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var old_clic = '';
    function selection_tr(un_id) {
    var couleur_unselect = '#FFFFFF';
    var couleur_select = '#FFDEDE';
    document.getElementById(un_id).style.backgroundColor = couleur_select;
    if (old_clic != '') document.getElementById(old_clic).style.backgroundColor = couleur_unselect;
    old_clic = un_id;
    }
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    ça fait le meme comportement qu'avant..
    je pense que je vais aarreter la bidouille, soit utiliser une solution propre soit changer de composant!!
    merciii

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    ça fait le meme comportement qu'avant..
    Fais voir ton "adaptation"

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  14. #14
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    voilà a quoi ca ressemble:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function dataGridSelect(event) {		
    var menu=event.f_getComponent();
    var row=event.f_getItem();
    var old_clic = '';     
    var couleur_unselect = '#FFFFFF';
    var couleur_select = '#FFDEDE';
    row.style.backgroundColor = couleur_select;
    if (old_clic != '') 
     row.style.backgroundColor = couleur_unselect;
    old_clic = row;
    alert('ok');	
    }
    les lignes selectionnées, restent selectionées..ya pas un truc pour redefinir le onClick de l'object row de mon exemple..
    dans ce cas je ferais xxxx.onClick='this.backgroundColor=...'


    mercii

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    old_clic en variable locale n'a aucune chance de fonctionner.

    Sous réserve que le reste de ton code fonctionne, il suffit de passer "old_clic" en variable globale ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  16. #16
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    ... "row", c'est un ID ou un objet ?

    Les 2 ne se traitent pas de la même manière (ce que tu fais ici) ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  17. #17
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    old_clic en variable locale n'a aucune chance de fonctionner.

    Sous réserve que le reste de ton code fonctionne, il suffit de passer "old_clic" en variable globale ...
    A+
    ahh ok..

    mercii biennn..

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/11/2007, 13h04
  2. dropdownlist gérer événement lors d'une selection
    Par blandine555 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 25/07/2007, 19h11
  3. Réponses: 11
    Dernier message: 17/07/2006, 22h08
  4. Modifier dynamiquement TOUS les URL d'une page
    Par Torpedox dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2006, 05h21
  5. Modifier dynamiquement le style d'un textarea
    Par AlLutun dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/11/2004, 15h18

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