Js wordt maar 1x uitgevoerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan terhuijzen

jan terhuijzen

21/05/2012 20:20:23
Quote Anchor link
Hallo ik heb een simpele JavaScript code om een div te verplaatsen.
Het probleem is dat de div maar 1x kan worden verplaatst. Als er eenmaal op is geklikt en de muis heeft bewogen werkt het niet meer. En het is de bedoeling dat de div altijd verplaatsbaar is.
De browser die ik gebruik is IE 9

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<html>
<head>
<script>
function verplaats(div) {
drag = div;
links = event.clientX - document.getElementById(drag).style.left;
boven = event.clientY - document.getElementById(drag).style.top;
}
function uit() {
drag = "";
links = "";
boven = "";
}
function move() {
if(drag != "") {
document.getElementById(drag).style.left=event.clientX - links;
document.getElementById(drag).style.top=event.clientY - boven;
}
}
</script>
<style>
#heleDiv {
width: 110px;
height: 110px;
border: 1px solid lightgrey;
position: absolute;
}
#verplaatsbalk {
width: 100px;
height: 20px;
border: 1px solid lightgrey;
margin: 4px;
}
</style>
</head>
<body onmousemove="move()" onclick="uit()">
<div id="heleDiv">
<div id="verplaatsbalk" onmousedown="verplaats('heleDiv'); return false">
Verplaatsbaar
</div>
</div>
</body>
 
PHP hulp

PHP hulp

25/11/2024 08:34:18
 
Joey Drieling

Joey Drieling

21/05/2012 22:56:09
Quote Anchor link
Kijk of je foutmeldingen krijgt open de pagina in IE9 druk F12 en doe scriptcontrole!?
 
Jan terhuijzen

jan terhuijzen

22/05/2012 16:40:43
Quote Anchor link
Fout: variabele drag is niet gedefinieerd

Toevoeging op 22/05/2012 16:53:15:

Hoe kan dat? variabele drag wordt toch steeds ge'update doordat de functie "verplaats()" opnieuw wordt uitgevoerd?
 
Mark Hogeveen

Mark Hogeveen

22/05/2012 16:57:34
Quote Anchor link
Hmmm ik denk dat het komt doordat de variabele niet wordt veranderd maar hoe dat kan weet ik niet.
 
Wouter J

Wouter J

22/05/2012 17:08:05
Quote Anchor link
Je definieert drag in de function scope en niet in de global scope. Zet dit eens boven aan je script (na <script>):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
var drag,
    links,
    boven;


Meer informatie: http://bonsaiden.github.com/JavaScript-Garden/#function.scopes
Gewijzigd op 22/05/2012 17:10:04 door Wouter J
 
Jan terhuijzen

jan terhuijzen

22/05/2012 17:11:22
Quote Anchor link
Werkt nog steeds niet. Ik vind het maar raar
 
Wouter J

Wouter J

22/05/2012 17:12:28
Quote Anchor link
En plaats even een doctype op regel 1, IE wil graag een doctype zien zoniet => gaat het vreemd doen (vooral met JS)
 
Jan terhuijzen

jan terhuijzen

22/05/2012 17:16:19
Quote Anchor link
Oke nu gaat het helemaal raar doen. de div springt alle kanten op als ik hem versleep! (en het werkt nog steeds maar 1x)
Ik denk dat ik maar beter op internet een script kan zoeken dat wel werkt.
 
Vincent Huisman

Vincent Huisman

22/05/2012 17:53:26
Quote Anchor link
haal de onclick uit je body tag, en eventueel ook de bijbehorende functie
 
Jan terhuijzen

jan terhuijzen

22/05/2012 18:40:14
Quote Anchor link
Heb ik nu gedaan,
er staat nu aleen nog in de body tag onmousemove="move()"
De functie "uit()" is uit het javascript gehaald en onclick="uit()" is ook uit de body tag gehaald.
Als je nu de div verplaatst blijft hij aan je muis plakken, blijft hij de muis volgen en kun je hem niet meer loslaten. Hoe moet ik dit nu oplossen? moet ik een variabele maken die kan bepalen of de div verplaatsbaar is of niet verplaatsbaar is?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.