Toon posts:

Javascript met Mozilla probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als ik de waardes van de vars aflees krijg ik `undifined`...
met IE en Opera gaat het wel goed(ik controleer natuurlijk wel naar welke browser ie moet kijken).

if (nav.ns4) {
xMousePos = event.pageX;
yMousePos = event.pageY;
} else if (nav.ie4 || nav.ie5 || nav.ie6) {
xMousePos = window.event.x+document.body.scrollLeft;
yMousePos = window.event.y+document.body.scrollTop;
} else if (nav.moz) {
> xMousePos = parseInt(Event.pageX);
> yMousePos = Event.pageY;
}

Hij voert wel degelijk de procedure uit maar ik krijg er alleen undifined uit...

iemand?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Javascript zit bij de buren van Webdesign & Graphics. * curry684 trapt maar weer over de schutting :)

Professionele website nodig?


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:52

crisp

Devver

Pixelated

Geef je wel het event-object door aan de functie? Itt IE (en Opera die blijkbaar dus de IE-methode heeft ingebakken) is in Mozilla het event geen global object.

Intentionally left blank


Verwijderd

Topicstarter
Nou, ik had het wel ergens gelezen dat mozilla dat autmoatisch doet met de Event, alleen dan krijg je dus een functie(e){ begin volgens mij... maar als ik een ander onderdeel van de Event gebruik, bijvoorbeeld de offset enz, dan werken die prima.

Verwijderd

Topicstarter
Nou,

ik had het wle ergens gelezen over dat Event doorgeven bij moz, maar dan moet je met function functie(e){ beginnen, maar dat werkt niet helemaal in dit geval.

Daarbij, werken andere onderdelen in de Event wel... offset enz.


// ik geef geen event door dus

[ Voor 8% gewijzigd door Verwijderd op 29-10-2003 17:15 . Reden: ps ]


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

ik gebruik deze:

code:
1
2
3
4
5
document.onmousemove = function(e) {
    if(!e) var e = event;
    mouseX = e.clientX + (document.body.scrollLeft || 0);
    mouseY = e.clientY + (document.body.scrollTop || 0);
}
// ik geef geen event door dus
tjah. zonder event geen muispositie.

[ Voor 17% gewijzigd door Clay op 29-10-2003 17:16 ]

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Topicstarter
dus ik zit helemaal verkeerd bij moz met event.pageX / Y ?

Verwijderd

Topicstarter
Ik maak er volgens mij nu egt een rotzooi van,

hij geeft nu 0 terug en ik heb jouw voorbeeld op verschillende manieren toegepast.

Ik heb het dus zo zitten:

Ik heb een functie die wordt op geroepen wanneer je over een link gaat, in die functie wordt gekeken welke posities de muis heeft met behulp van de navigator die de user gebruikt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function giveAlt(txt,obj,e){
if (ns4) {
        xMousePos = e.pageX;
        yMousePos = e.pageY;
    } else if (ie4 || ie5 || ie6) {
        xMousePos = window.event.x+document.body.scrollLeft;
        yMousePos = window.event.y+document.body.scrollTop;
    } else if (moz) {
        document.onmouseover = function(e) {
            if(!e) var e = event;
            xMousePos = e.clientX + (document.body.scrollLeft || 0);
            yMousePos = e.clientY + (document.body.scrollTop || 0);
    }
    }
    alert("xMousePos=" + xMousePos + ", yMousePos=" + yMousePos);
}

maar nu krijg ik dus 0 terug

[ Voor 3% gewijzigd door Verwijderd op 29-10-2003 17:40 . Reden: ff ]


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

pageX en Y zijn niet per se fout, er zijn meerdere properties die muisposities bevatten. maar clientX en Y schijnt overal op te werken.

[edit]

je kan toch ook gewoon een losse mousemove handler maken en de globale waardes die daar constant geupdate worden gebuiken in die giveAlt ?

[ Voor 44% gewijzigd door Clay op 29-10-2003 17:42 ]

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Topicstarter
dus die functie:
code:
1
2
3
4
5
                document.onmouseover = function(e) {
            if(!e) var e = event;
            xMousePos = e.clientX + (document.body.scrollLeft || 0);
            yMousePos = e.clientY + (document.body.scrollTop || 0);
    }


alleen dan global(xMousePos) enz erbij?

//javascript is niet egt mijn sterkste kant.. maar het komt er afentoe een beetje bij kijken bij PHP

[ Voor 16% gewijzigd door Verwijderd op 29-10-2003 17:44 ]


Verwijderd

Topicstarter
JAH, het werkt :) danke schon _/-\o_

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:52

crisp

Devver

Pixelated

simpeler kan haast niet:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<head>
<title>test</title>
<script>

function mouseHandler(txt,obj,e) {

  var y = e.clientY + document.body.scrollTop;
  var x = e.clientX + document.body.scrollLeft;

  alert('x: '+x+' y: '+y);

}

</script>
</head>
<body>
<a href="http://gathering.tweakers.net"
  onmouseover="mouseHandler('GoT',this,event)">
  gathering.tweakers.net</a>
</body>
</html>


(werkt alleen dus niet in oude browsers, but who gives a d*mn?)

Intentionally left blank


Verwijderd

Topicstarter
nou krijg ik alleen weer problemen met Mozilla en het veranderen van stylen van ID's...

code:
1
2
3
            document.getElementById("alt").style.left = xMousePos + 10;
            document.getElementById("alt").style.top = yMousePos + 10;
            document.getElementById("alt").style.visibility = 'visible';

werkt dus allemaal niet :(

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:52

crisp

Devver

Pixelated

doet er eens 'px' achter zetten ;)

Intentionally left blank


Verwijderd

Topicstarter
code:
1
2
3
4
            document.getElementById(name).value = txt;
            document.getElementById("alt").style.left = xMousePos + '10 px';
            document.getElementById("alt").style.top = yMousePos + '10 px';
            document.getElementById("alt").style.visibility = 'visible';


werkt ook niet :( ... en in IE werkt het prima (hoewel ik het me quotes nog nie heb getes in IE)

//als ik er een alertje bij gooi dan geeft ie ook geen waardes terug

[ Voor 19% gewijzigd door Verwijderd op 29-10-2003 18:01 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:52

crisp

Devver

Pixelated

(xMousePos + 10) + 'px';

Intentionally left blank

Pagina: 1