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 :

Créer une div draggable et contentEditable


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ingenieur
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Par défaut Créer une div draggable et contentEditable
    Bonjour à tous,

    Bonne année 2012.

    J'ai besoin d'aide étant debutant en javascript, j'aimerais créer dynamiquement une div qui soit draggable et contentEditable.

    J'arrive à creer une div mais n'est pas editable ni draggable, je n'utilise pas les plug in de jquery.

    Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function creer() {
    maDiv = document.createElement("div");
    maDiv.id = 'boxA';
    maDiv.draggable = 'true';
    maDiv.ondragstart = 'return dragStart(event)';
    document.body.appendChild(maDiv);
     
    monP = document.creatElement ("p");
    monP.id = 'ptext';
    monP.contentEditable = 'true';
    maDiv.monP.innerHTML = 'Ceci est le contenu du P'; //Peut contenir de l'html
    document.getElementById(maDiv).append(monP);
    //document.body.maDiv.appendChild(monP);
     }
    Merci par avance pour votre aide.
    Si il n'y a pas solution, je me contenterai d'une en jquery... merci.

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maDiv.ondragstart = 'return dragStart(event)';
    ondragstart ? dragStart ? Ou sont-ils définis ?

  3. #3
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Par défaut
    bonjour Vortexia.
    ne t'avais-je pas donné les explications il y a peu de temps sur le Chat ?

    N.B : ne mélangeons pas jQuery et javascript

  4. #4
    Membre averti
    Homme Profil pro
    ingenieur
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Par défaut Mes definitions
    Oui j'ai oublié de posté le code ou je définis les autres fonctions:

    Javascript:

    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
    function dragStart(ev) {
       ev.dataTransfer.effectAllowed='move';
       ev.dataTransfer.setData("Text", ev.target.getAttribute('id'));
       ev.dataTransfer.setDragImage(ev.target,0,0);
       return true;
    }
    function dragEnter(ev) {
       event.preventDefault();
       return true;
    }
    function dragOver(ev) {
        return false;
    }
    function dragDrop(ev) {
       var src = ev.dataTransfer.getData("Text");
       ev.target.appendChild(document.getElementById(src));
       ev.stopPropagation();
       return false;
    }
    Html:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="editer" type="button" class="p1" dir="ltr" lang="fr" onClick="creer()" value="editer">

    Merci de m'éclaircir ma lanterne, je suis vraiment dans l'ombre.

    Oui exacte Rotre, tu m'as expliqué sur le chat mais je n'arrive pas à faire fonctionner mes deux propriétés dragndrop et contenteditable en meme temps dans une creation dynamique de div sur clik d'un bouton.

    Quel est la différence entre jquery et javascrit ? Désolé je débute.

    Merci de vos réponses.

  5. #5
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maDiv.ondragstart = 'return dragStart(event)';
    ondragstart ? dragStart ? Ou sont-ils définis ?
    A mon avis il a voulu faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maDiv.ondragstart = new Function('return dragStart(event)');

  6. #6
    Invité
    Invité(e)
    Par défaut
    et il me semble que au lieux de mettre

    c'est plutot

    et pour ie < 9


  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par RomainVALERI
    ondragstart ? dragStart ? Ou sont-ils définis ?
    ondragstart est un événement du DOM
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par Bovino Voir le message
    ondragstart est un événement du DOM
    Tu as raison
    On l'a ici.
    Mes références datent parfois un peu.

  9. #9
    Membre averti
    Homme Profil pro
    ingenieur
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Par défaut
    Salut à tous,

    J'ai essayé vos suggestions willpower et Mekal, rien ne fonctionne, la div est bien créer à l'appui du bouton mais sans la proprité Dragndrop ou contentEditable.

    Pourtant quand je crée la div en dur sur le htlm ça marche:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="boxC" draggable="true" ondragstart="return dragStart(event)" >
       <p id="ptext" contentEditable="true"> . </p>
    </div>

    Voici le code complet de la page si quelqu'un pouvait me debloquer la situation:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    <!DOCTYPE HTML>
    <html>
    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-Script-Type" content="text/javascript">
    <script type="text/javascript" src="Draggable.js"></script>
     
    <style type="text/css">
     
     
    #boxA, #boxB, #boxC {
       float:left;padding:10px;margin:10px;-moz-user-select:none;
    }
     
    #boxA { border: 1px solid #CCC;
                    border-radius: 20px;
            width: 200px;
            height: 50px;
            float: right;
            margin: 10px;
                    /*background: url("images/papier.png")*/;
                     }
    #boxB { border: 1px solid #CCC;
            width: 250px;
            height: 400px;
            float: left;
            margin: 10px; }
    #boxC { border: 1px solid #CCC;
                    border-radius: 20px;    
            width: 200px;
            height: 50px;
            float: right;
            margin: 10px;
                    position: relative;
                    /*background: url("images/papier.png");*/               }
    #ptext { position: relative;
                    margin-top: 0px;
                    margin-right: 180px;
                    margin-bottom: 0px;
                    margin-left: 0px;}
    </style>
     
    <script>
     
     
    function dragStart(ev) {
       ev.dataTransfer.effectAllowed='move';
       ev.dataTransfer.setData("Text", ev.target.getAttribute('id'));
       ev.dataTransfer.setDragImage(ev.target,0,0);
       return true;
    }
    function dragEnter(ev) {
       event.preventDefault();
       return true;
    }
    function dragOver(ev) {
        return false;
    }
    function dragDrop(ev) {
       var src = ev.dataTransfer.getData("Text");
       ev.target.appendChild(document.getElementById(src));
       ev.stopPropagation();
       return false;
    }
     
    </script>
    <script>
    function creer() {
    maDiv = document.createElement("div");
    maDiv.id = 'boxA';
    maDiv.class = 'sample';
    //maDiv.contentEditable = 'true';
    maDiv.draggable = 'true';
    maDiv.ondragstart = new Function('return dragStart(event)');
    //maDiv.ondragStart = 'return dragStart(event)';
     
    document.body.appendChild(maDiv);
     
    monP = document.creatElement ("p");
    monP.id = 'ptext';
    monP.contentEditable = 'true';
    maDiv.monP.innerHTML = 'Ceci est le contenu du P'; //Peut contenir de l'html
    //maDiv.onclick = function(){alert('click !');}; //Évènement ayant lieu lors du click sur la div
    document.getElementById(maDiv).append(monP);
    //document.body.maDiv.appendChild(monP);
     }
    function clone(){i = i +1;
    var e = $("<div id='box_"+i+"'></div>").appendTo("#boxB");
     
    $("#boxd").clone().prependTo(e);}
     
    </script>
    </head>
     
    <body>
     
    <center>
    <h2>Drag and drop HTML5 demo</h2>
    <div>Try to move the div to the dustin div</div>
     
     
    <div id="boxC" draggable="true" ondragstart="return dragStart(event)" >
       <p id="ptext" contentEditable="true"> . </p>
    </div>
    <input name="adhérer" type="button" class="p1" dir="ltr" lang="fr" onClick="creer()" value="Ma page">
    <div id="boxB" ondragenter="return dragEnter(event)" ondrop="return dragDrop(event)" 
         ondragover="return dragOver(event)">Dustbin</div>
     
    </center> 
    </body>
    </html>
    Merci de vos réponses encore une fois, on le dira jamais assez

  10. #10
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par Vortexia Voir le message
    on le dira jamais assez
    Y'a d'autres trucs qu'on ne dira jamais assez... genre ne pas oublier les balises code autour des extraits ? ^^


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

Discussions similaires

  1. comment créer une div scrollable html?
    Par aminaseo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 25/04/2010, 17h24
  2. créer une image "draggable" et "scalable"
    Par tagram dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/04/2009, 09h08
  3. [DIV][Javascript] créer une DIV sur onmouseover
    Par pmartin8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/08/2006, 15h10

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