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 :

Tableau dynamique


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Tableau dynamique
    J'essaie de mettre la couleur d'une case en rouge dans un tableau dynamique mais la fonction ne reçoit pas la valeur que j'envoie

    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
    function create_tableau()
    {
    var ligne1 = document.getElementById("ligne").value;
    var colonne1 = document.getElementById("colonne").value;
    var tbl = document.getElementById("dessin");    
        for (var ligne = 0; ligne < ligne1; ligne++) {
            var row = document.createElement("tr");
            for (var colonne = 0 ; colonne < colonne1; colonne++) {
                var cell = document.createElement("td");
                var cellText = document.createTextNode("");
                cell.setAttribute("onclick","Change_case(ligne,colonne);");
                alert(ligne);
                cell.id=""+ligne+colonne;
                cell.appendChild(cellText);
                row.appendChild(cell);
            }
            tbl.appendChild(row);
        }
    }
     
    function Change_case(ligne,colonne)
    {
        num=""+ligne+colonne;
        case_cliquee = document.getElementById(num);
        case_cliquee.style.backgroundColor = 'red';
    }

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 097
    Points : 16 606
    Points
    16 606
    Par défaut
    Salut
    Ligne 11
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                cell.setAttribute("onclick","Change_case(" + ligne +"," + colonne +");");
    Me semble t il.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 679
    Points
    44 679
    Par défaut
    Bonjour,
    je me permet une incursion dans cette discussion, qui même si résolue sans aucun remerciement ou autre de la part de son auteur, le manque de politesse devenant chronique, car elle révèle une mauvaise pratique quant à l’affectation d'un événement à un élément.
    Je parle de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cell.setAttribute("onclick","Change_case(ligne,colonne);");
    cell.id=""+ligne+colonne;
    pourquoi affecter une ID à l'élément pour la passer à une fonction qui va la récupérer pour pouvoir cibler l'élément, sur lequel on met l'écouteur ....

    En gros, plusieurs solutions sont possibles, mais il eut été mieux, à peine, de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cell.onclick = function(){
      this.style.backgroundColor = "red";
    }
    ... peut-être plus judicieux de manipuler une classe.

    Nota : dans le cas présent la délégation d'événement sur la <table> parent serait une solution plus propre et qui fonctionnerait quelque soit le nombre de cellules crées.


    Bon un petit rappel :
    IV-G. Remerciements
    Il est de bon ton de remercier la personne qui vous a aidé bénévolement et de lui signaler que sa réponse a bien résolu votre problème ou bien répondu à votre question.

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

Discussions similaires

  1. Probleme tableau dynamique 2D
    Par Guillotin dans le forum Débuter
    Réponses: 3
    Dernier message: 04/02/2009, 15h27
  2. Probleme tableau dynamique
    Par John-Doe dans le forum Débuter
    Réponses: 6
    Dernier message: 31/03/2008, 00h19
  3. Réponses: 9
    Dernier message: 23/12/2007, 19h51
  4. probleme dans tableau dynamique
    Par zulad dans le forum C#
    Réponses: 3
    Dernier message: 27/07/2007, 21h05
  5. probleme de tableau dynamique
    Par El Krotal dans le forum C
    Réponses: 9
    Dernier message: 25/06/2004, 17h00

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