Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer dynamiquement des Elements ?

De plus les conbinaient les uns dans les autres !

    1 mars 2009 à 22:24:59

    Bonjour,

    Voila mon problème, comment créer dynamiquement des Elements en javascript ! Et comment les afficher ! De plus comment les combinaient les uns dans les autres !

    Pourquoi ce code n'affiche rien :
    var myDiv1 = document.createElement('div');
    myDiv1.id = 'div1';
    myDiv1.interHTML = 'MonDiv1';
    			
    var myDiv2 = document.createElement('div');
    myDiv2.id = 'div2';
    myDiv2.interHTML = 'MonDiv2';
    			
    myDiv1.appendChild(myDiv2);
    document.body.appendChild(myDiv1);
    
    • Partager sur Facebook
    • Partager sur Twitter
      1 mars 2009 à 22:47:59

      Edit : Aucun rapport avec le sujet, j'avais mal lu, désolé.

      Pour créer dynamiquement des évènements tu peux faire comme ceci :

      document.getElementById('cible')['ton_évènement'] = ta_fonction;
      


      En Javascript il faut comprendre une chose : toute propriété ou fonction qui accessible dans un élément/objet/whatever est aussi disponible par le biais d'un tableau. Ainsi, si je veux accéder à l'évènement onload de l'élément window alors je peux faire ceci :

      window.onload;
      


      Mais aussi cela :

      window['onload'];
      


      L'avantage est de notamment pouvoir y mettre des valeurs dynamiques. Dernière info concernant ce sujet : toute fonction créée est accessible par le biais d'un tableau dans l'élément window, si je créé la fonction test() alors je pourrai l'exécuter comme cela :

      window['test']();
      


      J'espère que ça t'aidera :) .
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        1 mars 2009 à 22:49:44

        Salut,
        c'est innerHTML et non interHTML :) .
        • Partager sur Facebook
        • Partager sur Twitter
          1 mars 2009 à 22:53:24

          Ah merde, j'avais lu "évènements" au lieu de "Elements" o_O !

          Bon, bah j'ai dis de la merde, désolé :D !
          • Partager sur Facebook
          • Partager sur Twitter
            1 mars 2009 à 23:01:23

            Va au lit, ça vaux mieux =D
            • Partager sur Facebook
            • Partager sur Twitter
              1 mars 2009 à 23:14:36

              Non, j'attends la sortie du nouvel album des Fatals Picards à minuit :D !
              • Partager sur Facebook
              • Partager sur Twitter
                2 mars 2009 à 14:52:40

                Merci beaucoup ! En effet erreur de frape... -_- ...

                J'ai une autre question... :euh:

                Voila ce code ne fonctionne pas mais je ne comprends pas pourquoi :
                var monDiv = document.createElement('div');
                monDiv.id = 'monDiv';
                			
                var interDiv = new Array();
                for(var i=0; i<4; i++)
                {
                	interDiv[i] = document.createElement('div');
                	interDiv[i].className = 'interDiv';
                	interDiv[i].innerHTML = i;
                	interDiv[i].style.width = '50px';
                	interDiv[i].style.left = 70*i+'px';
                				
                        interDiv[i].onmouseover = function(){interDiv[i].className = 'interDivHover';}
                	interDiv[i].onmouseout = function(){interDiv[i].className = 'interDiv';}
                
                	monDiv.appendChild(interDiv[i]);
                }
                
                document.body.appendChild(monDiv);
                


                Voici les lignes qui ne fonctionner pas :
                interDiv[i].onmouseover = function(){interDiv[i].className = 'interDivHover';}
                interDiv[i].onmouseout = function(){interDiv[i].className = 'interDiv';}


                PS: j'ai un fichier "css" qui définit des dimensions et couleurs pour chacun de mes div afin de voir ce qui ce passe à l'écran ^^ ...

                Mici d'avance pour toutes réponses ! :)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  2 mars 2009 à 14:58:28

                  La flemme d'expliquer en détails, mais avec ça c'est sensé marcher :

                  interDiv[i].onmouseover = (function () {
                      return function () {
                          interDiv[i].className = 'interDivHover';
                      };
                  })();
                  


                  pareil pour l'autre :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 mars 2009 à 15:10:39

                    Je comprends pas du tout ce que tu as marquer...

                    Et en plus cela ne fonctionne pas :( ...
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      2 mars 2009 à 15:15:28

                      Ouais t'as raison je cherche trop compliqué :

                      interDiv[i].onmouseout = function(){this.className = 'interDiv';}
                      


                      ( edit )
                      Mieux de faire comme ça :

                      var monDiv = document.createElement('div'),
                          tmp, interDiv = [];
                      
                      monDiv.id = 'monDiv';
                      
                      function mouseover (e) {
                          this.className = 'interDivHover';
                      }	
                      
                      function mouseout (e) {
                          this.className = 'interDiv';
                      }
                      
                      for(var i=0; i<4; i++) {
                      	tmp = document.createElement('div');
                      	tmp.className = 'interDiv';
                      	tmp.innerHTML = i;
                      	tmp.style.width = '50px';
                      	tmp.style.left = 70*i+'px';
                      				
                              tmp.onmouseover = mouseover;
                      	tmp.onmouseout = mouseout;
                      
                              interDiv.push(tmp);
                      	monDiv.appendChild(tmp);
                      }
                      document.body.appendChild(monDiv);
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 mars 2009 à 18:09:12

                        Encore quelque questions, comment peut-on connaitre la taille de la fenêtre de l'utilisateur ? Et comment connaitre la taille d'un div ?

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 mars 2009 à 18:17:21

                          Qu'est-ce que tu souhaites ? La taille de la partie réservée à ta page ou bien la taille de la fenêtre ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 mars 2009 à 18:18:45

                            Citation : Nesquik69

                            Qu'est-ce que tu souhaites ? La taille de la partie réservée à ta page ou bien la taille de la fenêtre ?



                            La partie réservée à ma page !

                            Et aussi comment savoir les dimensions d'un div présent dans ma page ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 mars 2009 à 18:28:09

                              Alors pour connaître la taille d'un div (ou autre élément) il te suffit d'utiliser les propriétés offsetWidth et offsetHeight.

                              Pour le calcul de la taille de la page, il suffit normalement d'utiliser les propriétés innerWidth et innerHeight mais comme IE n'est pas compatible il te faudra récupérer pour ce dernier les dimensions de la balise <body /> avec innerWidth et innerHeight ;) .
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 mars 2009 à 19:12:37

                                Citation : Nesquik69

                                Alors pour connaître la taille d'un div (ou autre élément) il te suffit d'utiliser les propriétés offsetWidth et offsetHeight.

                                Pour le calcul de la taille de la page, il suffit normalement d'utiliser les propriétés innerWidth et innerHeight mais comme IE n'est pas compatible il te faudra récupérer pour ce dernier les dimensions de la balise <body /> avec innerWidth et innerHeight ;) .



                                Pour la taille de la page j'ai réussi ! Mais pas pour un div ! Cela ne fonctionne pas :( , voici mon code :
                                alert(document.getElementById('monDiv').offsetWidth);
                                

                                <div id="monDiv" style="background-color:#547452; width:200px; height:250px;">Mon Div</div>
                                
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 mars 2009 à 19:34:09

                                  Hum... ça fonctionne parfaitement hein. Vérifie si tu n'as pas mis le alert() avant l'affichage de ton DIV, ça reste une erreur bête mais fréquente ;) .
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 mars 2009 à 19:39:35

                                    Citation : Nesquik69

                                    Hum... ça fonctionne parfaitement hein. Vérifie si tu n'as pas mis le alert() avant l'affichage de ton DIV, ça reste une erreur bête mais fréquente ;) .



                                    Oups ! Mal lu ! ^^ Cela fonctionne ^^:)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      2 mars 2009 à 19:41:12

                                      Mets le après justement ! ^^
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        2 mars 2009 à 19:55:07

                                        Euh, pourquoi ceci ne fonctionne pas (Décidément je trouve plein de trucs bizarre en javascript...) :
                                        var monDiv = document.createElement('div');
                                        monDiv.id = 'StartBarre';
                                        monDiv.style.height='200px';
                                        document.body.appendChild(monDiv);
                                        alert(document.monDiv.offsetHeight);
                                        
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          2 mars 2009 à 20:03:40

                                          alert(monDiv.offsetHeight);
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            2 mars 2009 à 20:12:23

                                            Edit : J'ai rien dit.
                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Créer dynamiquement des Elements ?

                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                            • Editeur
                                            • Markdown