質問編集履歴

1

複数のdstを設置する場合

2018/03/02 07:41

投稿

_Victorique__
_Victorique__

スコア1392

test CHANGED
File without changes
test CHANGED
@@ -31,3 +31,71 @@
31
31
  できないのでしたらやはり複数枚読み込んでおいて、まだ読み込みたい時は、ボタンなどを配置して置くという方法
32
32
 
33
33
  しかないのでしょうか?
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+ ### 追記
42
+
43
+ ![イメージ説明](dd2ba20e164cf17a4fa4cca7c674c808.png)
44
+
45
+ この画像のようにdstを複数設置する場合を考えた時に同じidが複数存在してしまうのでうまく画像が切り替わりませんでした。
46
+
47
+ しかし、以下のようにするとうまくいきます。
48
+
49
+ ```HTML
50
+
51
+ <div class="dragdrop">
52
+
53
+ <div id="dropArea1" droppable>
54
+
55
+ ここに画像をドロップしてください
56
+
57
+ </div>
58
+
59
+ <img id="dispImg" draggable src="http://robohash.org/1.png?size=200x200"></img>
60
+
61
+ <div id="dropArea2" droppable>
62
+
63
+ ここに画像をドロップしてください
64
+
65
+ </div>
66
+
67
+ </div>
68
+
69
+ ```
70
+
71
+ ```JavaScript
72
+
73
+ let next = 1;
74
+
75
+ dispImg.ondragstart = evt => {
76
+
77
+ evt.dataTransfer.setData('text', dragImg.src);
78
+
79
+ }
80
+
81
+ dropArea1.ondragover = evt => evt.preventDefault();
82
+
83
+ dropArea1.ondrop = evt => {
84
+
85
+ dstImg.src = evt.dataTransfer.getData('text');
86
+
87
+ next++;
88
+
89
+ dispImg.src = `http://robohash.org/${next}.png?size=200x200`;
90
+
91
+ }
92
+
93
+ ```
94
+
95
+ dstが2個とかなら書いても良いとは思いますが、想定では9個とかになるのでコードがスマートではありません。
96
+
97
+ どうにかして綺麗に書くことはできないでしょうか?
98
+
99
+ ちなみにどのdstかによってdbの処理が変わってくるのでどのdstか分かって置く必要があります。
100
+
101
+ 素直に書いた方が良いのでしょうか?