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>
Partager