Avatar billede per1291 Nybegynder
19. juni 2005 - 01:06 Der er 10 kommentarer og
2 løsninger

DragAndDrop research

Hej -

Jeg vil gerne lave en funktion, som gør det muligt at flytte en div vha. musen: Du klikker på emnet, og så kører du markøren hen til det sted hvor emnet skal anbringes.

Jeg har i første omgang brug for at bestemme musemarkørens position. Til formålet har jeg fundet en kodestump på Nettet, og efter nogle tilpasninger ser det ud til at den virker. (Jeg kan dog ikke nå at se, om programmet starter ud med en fejlmelding, hvis musemarkøren er uden for vinduet!)

Mit problem er, at jeg ikke helt forstår denne kodestump.
Nogle steder er der brugt tre lighedstegn ===, andre steder er der brugt !== hvor jeg selv ville have brugt !=, og et enkelt lighedstegn hvor jeg selv ville have brugt ==.

Jeg har en mistanke om, at der er tale om tilordning i forbindelse med en sandhedsværditest. Men kan en af jer ikke forklare, præcis hvad der foregår?

(Muligvis skal NAME også udskiftes med ID ?)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Mouseposition</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta name="description" content="How to detect the location of the mouse across browsers">
<meta http-equiv="content-script-type" content="text/javascript">

</head><body>

<script type="text/javascript">

function getwindow()
{
var d=document,v=window,w,h,l,t;
if (typeof v.innerWidth === 'number')
{
  w=v.innerWidth; h=v.innerHeight; l=v.pageXOffset; t=v.pageYOffset;
}
else
if ((v = d.documentElement) && typeof v.clientWidth === 'number' &&
  v.clientWidth !== 0 || (v = d.body))
{
  w=v.clientWidth; h=v.clientHeight; l=v.scrollLeft; t=v.scrollTop;
}
return {w:w,h:h,l:l,t:t};
}

function getmouse(e)
{
  e = e || window.event || {};
  var mouseX, mouseY, w = getwindow(),
  minX = w.l,
  minY = w.t,
  maxX = w.w + w.l,
  maxY = w.h + w.t;
  if( typeof e.pageX === 'number' ) {mouseX=e.pageX; mouseY=e.pageY;}
  else {mouseX = e.x + w.l; mouseY = e.y + w.t;}
  document.forms.f.elements.t.value = 'mouseX =\t' + mouseX + '\nmouseY =\t' + mouseY + '\n' +
  'minX =\t' + minX + '\nminY =\t' + minY + '\n' + 'maxX =\t\t' + maxX + '\nmaxY =\t\t' + maxY;
}

if (document.captureEvents) {document.captureEvents(Event.MOUSEMOVE);}
document.onmousemove = getmouse; window.onscroll = getmouse; window.onresize = getmouse;

</script>

<h1>Mouse Position</h1>

<form id="f" action="">
<textarea name="t" cols="80" rows="7"></textarea>
</form>

</body>
</html>

Hilsen  Per
Avatar billede softspot Forsker
19. juni 2005 - 02:01 #1
Der er tale om identity (=== og !==). Prøv at checke dette link ud:

http://www.webreference.com/js/tips/991205.html
Avatar billede per1291 Nybegynder
19. juni 2005 - 02:10 #2
Javel, der er tale om en alternativ notation for "typeof".
Det opklarer en del af mit spørgsmål.

Hilsen  Per
Avatar billede roenving Novice
19. juni 2005 - 06:39 #3
Det har principielt intet med typeof-operatoren, for som linket også klargør, betyder === 'præcis lig med', altså skal javascripts normalt meget tilgivende maskine over for type (og deraf følgende konverteringsforsøg for at få ting til at lykkes !-), springes over ...
Avatar billede Slettet bruger
19. juni 2005 - 10:55 #4
Der er jo altid vores ven http://www.walterzorn.com/  ;)
Avatar billede per1291 Nybegynder
19. juni 2005 - 11:08 #5
Hvad sker der så ved det første lighedstegn her:

if ((v = d.documentElement) && typeof v.clientWidth === 'number' &&
  v.clientWidth !== 0 || (v = d.body))

Er det en tildeling (assignment) eller blot en test for, om tildeling er mulig?

Hilsen  Per
Avatar billede roenving Novice
19. juni 2005 - 11:13 #6
Det er begge dele !-)
Avatar billede per1291 Nybegynder
19. juni 2005 - 11:28 #7
kryptos: Det ligner nyttig kode. Måske kan jeg plukke i den.

Hilsen  Per
Avatar billede per1291 Nybegynder
19. juni 2005 - 16:06 #8
Svar ønskes fra roenving, softspot og kryptos. Tak for hjælpen, alle sammen.

Hilsen  Per
Avatar billede roenving Novice
19. juni 2005 - 16:08 #9
Velbekomme '-)
Avatar billede softspot Forsker
19. juni 2005 - 22:50 #10
Ligeså :)
Avatar billede per1291 Nybegynder
20. juni 2005 - 12:54 #11
Synd du kom for sent, kryptos.

Hilsen  Per
Avatar billede roenving Novice
20. juni 2005 - 14:02 #12
-- tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester