|
| Koordinater på onclick Fra : Martin |
Dato : 06-08-08 17:05 |
|
Hej!
Ved fx.
<a onclick="doSomething('var1','var2')">Klik her</a>
Kan man så få musekoordinaterne udfra onclick'en ?
Jeg har selvfølgelig googlet en masse, men synes bare alle nævner man
skal have fat i eventen, men den får man jo ikke overført via
ovenstående - eller hvordan?
function doSomething(var1, var2) {
(!e) ? e = window.event : e = e;
alert(e.pageX);
}
Giver bare en undefined, jeg har også prøvet med
<a onclick="doSomething(this, 'var1','var2')">Klik her</a>
function doSomething(e, var1, var2) {
(!e) ? e = window.event : e = e;
alert(e.pageX);
}
Men den fejler også...
Så hvordan får man fat i koordinaterne får det element man har klikket på ?
| |
Birger (06-08-2008)
| Kommentar Fra : Birger |
Dato : 06-08-08 18:33 |
|
Martin wrote:
> Hej!
>
> Ved fx.
>
> <a onclick="doSomething('var1','var2')">Klik her</a>
>
> Kan man så få musekoordinaterne udfra onclick'en ?
> Jeg har selvfølgelig googlet en masse, men synes bare alle nævner man
> skal have fat i eventen, men den får man jo ikke overført via
> ovenstående - eller hvordan?
>
> function doSomething(var1, var2) {
> (!e) ? e = window.event : e = e;
> alert(e.pageX);
> }
>
> Giver bare en undefined, jeg har også prøvet med
>
> <a onclick="doSomething(this, 'var1','var2')">Klik her</a>
>
> function doSomething(e, var1, var2) {
> (!e) ? e = window.event : e = e;
> alert(e.pageX);
> }
>
> Men den fejler også...
>
> Så hvordan får man fat i koordinaterne får det element man har
> klikket på ?
HTML :
onclick="DoSomething( 'var1', 'var2', event);
function SoSomething( v1, v2, e) {
e = window.event ? window.event : e;
....
}
http://developer.mozilla.org/en/docs/DOM:event
3. eksempel skulle besvare dine spørgsmål
Birger
--
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt.
Daglig opdatering.
| |
Martin (06-08-2008)
| Kommentar Fra : Martin |
Dato : 06-08-08 21:38 |
|
Birger wrote:
> HTML :
> onclick="DoSomething( 'var1', 'var2', event);
Haha.. troede faktisk man kunne få event ud af this :)
smart..
>
> function SoSomething( v1, v2, e) {
> e = window.event ? window.event : e;
> ...
> }
>
> http://developer.mozilla.org/en/docs/DOM:event
> 3. eksempel skulle besvare dine spørgsmål
Man skal bare kigge det rigtige sted, så finder man det :)
Synes ellers jeg havde gloet hele DOM docs igennem, men åbenbart var jeg
lidt træt da jeg nåede til events :)
Tak!
| |
Lasse Reichstein Nie~ (06-08-2008)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 06-08-08 22:24 |
|
"Birger" <sdc@bbsorensen.com> writes:
> HTML :
> onclick="DoSomething( 'var1', 'var2', event);
>
> function SoSomething( v1, v2, e) {
> e = window.event ? window.event : e;
> ...
> }
Her er to forskellige tilgangsvinkler blandet sammen.
I en HTML onclick-attribut vil "event" altid referere til eventen. Det
er ikke nødvendigt at gøre noget ekstra i funktionen man kalder.
Første linje i DoSomething bruger man til gengælde når man tildeler
funktionen direkte som handler via Javascript:
function foo(e) {
e = e || window.event;
// ...
}
document.getElementById("myId").onclick = foo;
//eller, i standardunderstøttende browsere:
document.getElementById("myId").addEventListener("click", foo, true);
/L
--
Lasse Reichstein Nielsen
DHTML Death Colors: <URL: http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
| |
Martin (07-08-2008)
| Kommentar Fra : Martin |
Dato : 07-08-08 00:45 |
|
Lasse Reichstein Nielsen wrote:
> "Birger" <sdc@bbsorensen.com> writes:
>
>> HTML :
>> onclick="DoSomething( 'var1', 'var2', event);
>>
>> function SoSomething( v1, v2, e) {
>> e = window.event ? window.event : e;
>> ...
>> }
>
> Her er to forskellige tilgangsvinkler blandet sammen.
>
> I en HTML onclick-attribut vil "event" altid referere til eventen. Det
> er ikke nødvendigt at gøre noget ekstra i funktionen man kalder.
>
> Første linje i DoSomething bruger man til gengælde når man tildeler
> funktionen direkte som handler via Javascript:
>
> function foo(e) {
> e = e || window.event;
> // ...
> }
> document.getElementById("myId").onclick = foo;
> //eller, i standardunderstøttende browsere:
> document.getElementById("myId").addEventListener("click", foo, true);
Jeps, det var præcis også det jeg fandt frem til, problemet er så bare
at jeg har omkring 300 onclick events, som skulle laves - allesammen med
forskellige argumenter til min funktion.
Jeg kunne selvfølgelig finde alle de steder, problemet er så bare at det
hele bliver genereret dynamisk, og ville tage længere tid at programmere
end jeg har tid til... man skal jo på ferie :)
Så derfor så var Birgers svar præcist hvad jeg ledte efter.
| |
Stig Johansen (07-08-2008)
| Kommentar Fra : Stig Johansen |
Dato : 07-08-08 06:40 |
|
Martin wrote:
> function doSomething(var1, var2) {
> (!e) ? e = window.event : e = e;
> alert(e.pageX);
> }
Der er vistnok noget med det hedder e.pageX i en slags browsere og e.x i
andre.
Hvis det er dit 'lykkehjul', så har jeg et mere eller mindre analogt -
_laaangtids(legetøjs)projekt_ her:
< http://wopr.lir.dk/stargate/wopr.stargate.html>
Jeg har ikke rodet med det i en 4-5 måneder, men jeg startede også med image
maps, men gik over til Javascript.
Tanken (på sigt) er, at man 'drejer' en adresse ligesom i Stargate (hvis man
ser eller kender film/serie). Som det er nu 'åbner' gaten sig hvis man
rammer sparre 30.
Hvad det skal bruges til ? - intet, just for fun.
--
Med venlig hilsen
Stig Johansen
| |
Martin (07-08-2008)
| Kommentar Fra : Martin |
Dato : 07-08-08 14:20 |
|
Stig Johansen wrote:
> Martin wrote:
>
>> function doSomething(var1, var2) {
>> (!e) ? e = window.event : e = e;
>> alert(e.pageX);
>> }
>
> Der er vistnok noget med det hedder e.pageX i en slags browsere og e.x i
> andre.
Jeps, det har jeg styr på - men korrekt, IE overholder igen igen ikke
standarden fra w3c.
>
> Hvis det er dit 'lykkehjul', så har jeg et mere eller mindre analogt -
> _laaangtids(legetøjs)projekt_ her:
> < http://wopr.lir.dk/stargate/wopr.stargate.html>
> Jeg har ikke rodet med det i en 4-5 måneder, men jeg startede også med image
> maps, men gik over til Javascript.
Meget fikst, problemet er bare at mit lykkehjul er lavet på 1 uge, og
jeg har ikk mere tid til det, samt at hele backenden selvfølgelig også
skal laves - og at areamappet skal kunne laves dynamisk over sigt, så
derfor så valgte jeg det på denne måde.
>
> Tanken (på sigt) er, at man 'drejer' en adresse ligesom i Stargate (hvis man
> ser eller kender film/serie). Som det er nu 'åbner' gaten sig hvis man
> rammer sparre 30.
Tanken med mit hjul kan jeg desværre ikke sige da jeg har tavshedspligt,
men kan da sige at idéen er ret genial :)
>
> Hvad det skal bruges til ? - intet, just for fun.
>
Det skal mit, faktisk et temmelig seriøst projekt hehe
| |
Stig Johansen (08-08-2008)
| Kommentar Fra : Stig Johansen |
Dato : 08-08-08 05:47 |
|
Martin wrote:
> Meget fikst, problemet er bare at mit lykkehjul er lavet på 1 uge, og
> jeg har ikk mere tid til det, samt at hele backenden selvfølgelig også
> skal laves - og at areamappet skal kunne laves dynamisk over sigt, så
> derfor så valgte jeg det på denne måde.
Uanset om det er dynamisk areamap eller dynamisk Javascript, så burde det
vel igentlig ikke kræve ret mange linier kode med lidt sinus,cosinus osv.
at generere ?
> Det skal mit, faktisk et temmelig seriøst projekt hehe
Held og lykke med det.
--
Med venlig hilsen
Stig Johansen
| |
|
|