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 :

Déplacer une <div>, innerHTML et cloneNode.


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut Déplacer une <div>, innerHTML et cloneNode.
    Salut,

    J'ai une div cachée sur laquelle il y a des onClick.
    Cette div, il me faut pouvoir la déplacer dynamiquement avec JavaScript dans une autre div après le chargement d'une iframe.
    Le problème c'est que quand je fais un innerHTML, son contenu est bien affiché dans l'autre div mais toute les actions qui passent par document.getElementById sont effectués dans la div cachée et non pas dans la cible.
    Est-il possible de déplacer une div dans une autre div ?
    J'ai essayé de voir avec cloneNode(true); mais j'ai pas très bien compris comment cela marchait et si cela permettait de déplacer une div.

    Merci,
    Vincent.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    pas besoin de sortir l'artillerie lourde, un simple appendChild suffit.

    Un petit exemple :
    Code html : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>[...]</title>
    <style type="text/css">
    div {
      border : 1px solid #e0e0e0;
      width: 150px;
      height : 150px;
    }
    #div_move{
      background-color : #e0e0f0;
      border : 1px solid #8080f0;
      width : 100px;
      height : 100px;
    }
    </style>
    <script type="text/javascript">
    function moveDiv( id_elem, id_dest){
      var oElem = document.getElementById( id_elem);
      var oDest = document.getElementById( id_dest);
      oDest.appendChild( oElem);
    }
    </script>
    </head>
    <body>
    <button onclick="moveDiv( 'div_move', 'div_dest');">Déplace</button>
    <div id="div_srce">
      DIV source...
      <div id="div_move" onclick="alert(this.id);">
      </div>
    </div>
    <div id="div_dest">
    DIV destination...
    </div>
    </body>
    </html>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut
    Merci, j'ai vraiment galéré alors que ça parait simple...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut
    Salut,

    Donc j'ai pu essayer et ça marche. Mon code ressemble à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div style="position:absolute;visibility:hidden;">
    <div id="DIV_modify_page">
     <div id="myNicPanel" style="padding-left:3px; width: 28px;"></div>
    <div id="myInstance1">Du texte...</div>
    <script type="text/javascript" src="nicEdit.js"></script><script language="JavaScript">
         bkLib.onDomLoaded(function() {
            var myNicEditor = new nicEditor();
            myNicEditor.setPanel('myNicPanel');
            myNicEditor.addInstance('myInstance1');
         });
    </script>
    </div>
    </div>
    Et j'arrive à déplacer l'éditeur comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      get('DIV_page').innerHTML = '' ; // Je vide la destination, get signifie getElementById
      var oElem = WP.get('DIV_modify_page'); //WP signifie window.parent
      var oDest = WP.get('DIV_page');
      oDest.appendChild( oElem); //Je déplace.
    Le petit soucis c'est que je ne peux le faire qu'une fois, la page n'est jamais rechargée entièrement.

    Est-il possible de cloner une et avoir les events qui marchent dans dans la div et ces clones ? Comme ça je ne vide jamais DIV_modify_page en la déplaçant mais je la clone dans DIV_page.

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      var oElem = WP.get('DIV_modify_page');
      var oDest = WP.get('DIV_page');
      oDest = oElem.cloneNode(true);
    mais sans succés.

    Merci,
    Vincent.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    désolé mais tes infos et ton code ne sont pas assez clairs pour qu'on puisse t'aider efficacement;

    - on ne sait rien de 'DIV_page';
    - on ne sait pas pourquoi tu fais appel à un script .js au milieu d'une div;
    ...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut
    Citation Envoyé par javatwister Voir le message
    désolé mais tes infos et ton code ne sont pas assez clairs pour qu'on puisse t'aider efficacement;

    - on ne sait rien de 'DIV_page';
    - on ne sait pas pourquoi tu fais appel à un script .js au milieu d'une div;
    ...
    DIV_page va contenir soit du texte soit le contenu de DIV_modify_page qui permet de modifier le texte.
    Ensuite, j'ai enlevé le script dans la div était une erreur, je l'ai mis après la div...

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

Discussions similaires

  1. déplacer une div qui suit un curseur
    Par freye dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/04/2012, 08h27
  2. Réponses: 3
    Dernier message: 03/10/2011, 16h13
  3. Comment Déplacer une Div
    Par rafiq25 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/02/2008, 10h23
  4. div et innerHTML : tout sur une ligne?
    Par LineLe dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/04/2005, 11h15
  5. hauteur d une balise div en fonction de la résolution
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2005, 10h51

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