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

Bibliothèques & Frameworks Discussion :

Drag and Drop avec seulement un element dans la zone droppable a chaque fois. [Dojo]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut Drag and Drop avec seulement un element dans la zone droppable a chaque fois.
    Bonjour.

    J'utilise Dojo 1.1.1 dans le développement d'un site web.
    J'arrive a faire du drag and drop pas de soucis.
    Mais je voudrais qu'il n'y ai qu'un seul element dans des zones droppables.
    On me demande de faire un truc a la netvibes, avec un nombre de cases
    fixes.
    J'ai une liste de graphs a gauche et des cases a remplir mais avec un seul
    type de graphs a chaque fois.

    Lorsque l'on droppe un element, si il y a un element existant alors
    cet element est echanger avec l'element droppé:

    Est-ce qu'il e"st possible au callback onDndDrop
    d'echanger l'element existant entre la source et la target.

    J'ai essayé avec insucces , je ne comprends pas ce qu'est _normalizedCreator dans container.js

    Est ce que quelqu'un l'a deja fait ?

    Voici une partie du source.

    Merci d'avance.

    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
    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
    <div class="cartContainer" >
    <div dojoType="dijit.layout.BorderContainer" design="sidebar" id="main">
    <div dojoType="dijit.layout.ContentPane" region="leading" style="background-color: #acb386; width: 100px;" >
     <div id="items" class="dndContainer products" dojoType="dojo.dnd.Source" accept="cartItem" style="height:100%; width: 100px;">    
        <legend>Stock items</legend>
        <div dndType="cartItem" class="dojoDndItem" title="orange" ><img src="BarChartImg/images.jpeg"> orange</div>
        <div dndType="cartItem" class="dojoDndItem" title="apple" ><img src="BarChartImg/images2.jpeg"> apple</div>
        <div dndType="cartItem" class="dojoDndItem" title="pear" ><img src="BarChartImg/images3.jpeg"> pear</div>
    	<div dndType="cartItem" class="dojoDndItem" title="pear" > <img src="BarChartImg/images4.jpeg"> pear</div>
    	<div dndType="cartItem" class="dojoDndItem" title="pear" > <img src="BarChartImg/images5.jpeg"> pear</div>
    	<div dndType="cartItem" class="dojoDndItem" title="pear" ><img src="BarChartImg/images6.jpeg"> pear</div>
      </div>
    			</div>
     
    <div dojoType="dijit.layout.ContentPane" region="center" style="background-color: #f5ffbf; padding: 10px;">
    <table WIDTH=400 HEIGHT=400>
      <tr>
      <td  id="basket_1" class="dndContainer basket" dojoType="dojo.dnd.Source" accept="cartItem">
      <script type="dojo/connect" event="onDndDrop" args="source, nodes, copy, target">         
     
    	var children = target.getAllNodes();
    	for(var i = 0;i<children.length;i++){
         console.debug(children[i]);
        }
    	if(children.length > 1)
    	{	
    		console.debug("SOURCE "+ source.node.id);
    		console.debug("TARGET "+ target.node.id);		
    		source.node.appendChild(children[0]);
    		target.node.removeChild(children[0]);
    		target.delItem(children[0].id);
     
    		//var t = source._normalizedCreator(children[0]);
    		//source.setItem(t.node.id, {data: t.data, type: t.type});
     
    	}
      </script>
     
       <legend>Cart</legend>   
      </td>
      <td id="basket_2" class="dndContainer basket" dojoType="dojo.dnd.Source" accept="cartItem">  
     
      <legend>Cart</legend>    
      </td>
      </tr>
      <tr>
      <td  id="basket_3" class="dndContainer basket" dojoType="dojo.dnd.Source" accept="cartItem">  
      <legend>Cart</legend>
     
      </td>
      <td  id="basket_4" class="dndContainer basket" dojoType="dojo.dnd.Source" accept="cartItem">  
      <legend>Cart</legend>
     
      </td>
      </tr>
      </table>

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut La solution que j'ai trouvé.
    Voici la solution que j'ai trouvé:
    je passe par document.getElementById( source.node.id);
    pour obtenir la node et lui ajouter. Sinon cela ne marche pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(children.length > 1)
    	{		
    		var t = target.getItem(child.id);
    		t.node = child;		
    		source.setItem(t.node.id, {data: t.data, type: t.type});
    		target.delItem(child.id);	
    		target.node.removeChild(t.node);				
     
    		 var s = document.getElementById( source.node.id);
    		 s.appendChild(t.node);
    	}

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

Discussions similaires

  1. Drag and Drop avec un JPanel
    Par scorplayer dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/05/2008, 19h35
  2. Réponses: 6
    Dernier message: 18/12/2007, 09h16
  3. Drag and drop avec SDL et le langage C.
    Par GSébastien dans le forum SDL
    Réponses: 4
    Dernier message: 13/12/2007, 01h34
  4. [AJAX] Drag and Drop avec AJAX
    Par bonano dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/03/2007, 22h44
  5. "Drag and drop" avec directinput
    Par batosai dans le forum DirectX
    Réponses: 1
    Dernier message: 16/06/2004, 16h48

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