/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
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

Søg
Reklame
Statistik
Spørgsmål : 177433
Tips : 31962
Nyheder : 719565
Indlæg : 6407967
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste