Ik heb in javascript een heel simpel drag & drop dingetje gemaakt. De bedoeling is dat er een aantal plaatjes zijn waar je op kunt klikken, die schuiven dan met de cursor mee, en kunnen daarna in twee boxen worden gedumpt.
De twee boxen hebben een id van 'voorkant' en 'achterkant'. Wanneer je daarin klikt met een plaatje, moet het plaatje daar blijven hangen. Het aanklikken van plaatjes werkt, echter plaatjes in de boxen droppen werkt niet. De functie wordt niet eens aangeroepen.
Om te testen heb ik nu een alert helemaal bovenaan de functie dropImg gezet. Deze krijg ik niet te zien. Ik krijg echter ook geen javascript fouten.
De twee boxen hebben een id van 'voorkant' en 'achterkant'. Wanneer je daarin klikt met een plaatje, moet het plaatje daar blijven hangen. Het aanklikken van plaatjes werkt, echter plaatjes in de boxen droppen werkt niet. De functie wordt niet eens aangeroepen.
JavaScript:
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
| function startDrag(event) { var link = event.target; var voorkant = document.getElementById('voorkant'); var achterkant = document.getElementById('achterkant'); var imgSrc = link.getAttribute('src'); // make a copy of the image for dragging around image = document.createElement('img'); image.setAttribute('src', imgSrc); document.body.appendChild(image); // make the browser hand us the coordinates on mouseMove and prepare dropping document.addEventListener('mousemove', mouseMove, false); voorkant.addEventListener('click', dropImg, false); achterkant.addEventListener('click', dropImg, false); } function mouseMove(event) { var imgX = event.clientX + 1; // add some pixels otherwise clicks will be catched by image var imgY = event.clientY + 1; // do i need to explain this one too? image.setAttribute('style', 'position: absolute; left: '+imgX+'px; top: '+imgY+'px;'); } function dropImg(event) { alert('Dropping image!'); var link = event.target; var voorkant = document.getElementById('voorkant'); var achterkant = document.getElementById('achterkant'); var offsetX = event.offsetX; var offsetY = event.offsetY; link.appendChild(image); image.setAttribute('style', 'position: absolute; left: '+offsetX+'px; top: '+offsetY+'px;'); voorkant.removeEventListener('click'); achterkant.removeEventListener('click'); document.removeEventListener('mousemove'); } |
Om te testen heb ik nu een alert helemaal bovenaan de functie dropImg gezet. Deze krijg ik niet te zien. Ik krijg echter ook geen javascript fouten.
[ Voor 4% gewijzigd door cyberstalker op 08-08-2006 23:39 ]
Ik ontken het bestaan van IE.