Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 22.04.2005 11:20:51 Titel: event.clientX bei Firefox |
|
|
Hi Leute,
sicherlich kennt ihr das: ihr klickt auf einen Link (<a href="" onclick="aktion()">LINK</a>) und ein Fenster (<div id="hallo1">Hallo<br>Wurst</div>) erscheint an der Stelle des Links. Dies wird beim IE und Opera mit
document.getElementById(hallo).style.left = document.body.scrollLeft+event.clientX-event.offsetX;
gemacht. Nur beim scheiß Firefox geht das nicht, da es kein "event" ist. Sagt Firefox jedenfalls.
Nun die Frage: wie bekomme ich es hin, daß Firefox merkt auf welchen Link geklickt wurde? |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 22.04.2005 12:12:11 Titel: |
|
|
es gibt zwar kein window.event.... aber es gibt ein event-objekt dass dem event-handler übergeben wird.
das sollte dir helfen:
http://www.html-world.de/program/dhtml_4.php
(beispiel ganz unten)
gruss,
jan. |
|
Nach oben |
|
|
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 22.04.2005 13:26:54 Titel: |
|
|
Hi Jan,
danke fuer die schnelle Antwort, jedoch komme ich mit solch globalen Erklaerungen noch nicht klar.
Versuche:
alert(window.event.clientX);
alert(window.event.pageX);
alert(document.getElementById(ding).clientX);
Ergebnis von Firefox:
Fehler: window.event has no properties
Ich glaube ich raffe das System noch nicht. |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 22.04.2005 13:36:27 Titel: |
|
|
na wie auf der seite steht gibt es bei netscape (also auch beim feuerfuchs) kein window.event - stattdessen wird dem eventhandler ein eigenes event-objekt übergeben. beispiel:
Code: |
meinobject.onclick = machwas
function machwas(e)
{
alert(e.x +' : ' + e.y)
} |
sprich: e enthält beim netscape/moz/fire die eigenschaften die window.event im ie/op hat ... (mit einigen unterschieden siehe genannte seite)
jetzt verstanden?
gruss,
jan. |
|
Nach oben |
|
|
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 22.04.2005 15:24:56 Titel: |
|
|
Nein, ich raff es nicht und es funzt auch nichts. Wenn ich nichts uebergebe funzt nichts und wenn ich ein objekt uebergebe sagt er wieder es ist undefiniert. Ist doch scheisse alles. |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 22.04.2005 15:47:42 Titel: |
|
|
liefert doch alles was du brauchst:
Code: |
<html>
<head>
<script language="JavaScript">
<!--
function machwas(e)
{
s = '';
for(a in e){ s += a + ' = '+ e[a]+'\n'; }
alert(s);
}
//-->
</script>
</head>
<body>
<a id="meinlink" href="#">ab gehts</a>
<script language="JavaScript">
<!--
for(i=0;i<document.links.length;i++)
{ document.links[0].onclick = machwas; }
//-->
</script>
</body>
</html> |
|
|
Nach oben |
|
|
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 17.05.2005 11:28:17 Titel: Noch mal von vorne |
|
|
Hi Leute,
da ich jetzt nen kleinen Schritt weitergekommen bin, ich muß das event für den FF mit übertragen, wollte ich noch mal nachfragen.
Ich habe folgendes Script:
Code: |
function dropit(objEvt, whichone, refererXY)
{
if (window.themenu&&themenu!=whichone)
{
document.getElementById(themenu).style.visibility="hidden";
}
themenu = whichone;
//IE und Opera
if (document.all)
{
document.getElementById(themenu).style.left = document.body.scrollLeft+event.clientX-event.offsetX;
document.getElementById(themenu).style.top = document.body.scrollTop+event.clientY-event.offsetY+22;
document.getElementById(themenu).style.visibility = "visible";
}
//Firefox benötigt
else if (document.getElementById)
{
document.getElementById(themenu).style.top = objEvt.clientY +14;
document.getElementById(themenu).style.left = objEvt.clientX - 50;
document.getElementById(themenu).style.visibility = "visible";
}
}
|
und wird so aufgerufen
Code: |
<a href="" onClick="dropit(event,'dropmenu1',1);return false">tralala</a>
|
folgendes soll dargestellt werden:
Code: |
<div id=\"dropmenu1\" tyle="position:absolute;left:0;top:0">Huhuuu</div>
|
Der IE und Opera positionieren sauber den <div> an die gleiche Stelle, egal wo man bei "tralala" hinklickt (durch "event.offsetX"). Leider kennt der FF das nicht und momentan wird der <div> abhängig positioniert, wohin man bei "tralala" klickt. |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
|
Nach oben |
|
|
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 31.05.2005 19:46:59 Titel: |
|
|
Jau thx, aber ein event.offsetX hat der scheiß FF nicht.
Ich habe jetzt diverse Pulldownmenüs analysiert. Und überall da, wo die Menüs funzen wird IMMER mit absoluten Pos Werten gearbeitet.
Kann man irgendwie rausfinden, an welchen Erweiterungen die Leute um den FF arbeiten? Vielleicht releasen sie ja mal ein nicht Bugfix, sondern ein Update und mein event.offsetX geht auf einmal. |
|
Nach oben |
|
|
struppi Forumsteilnehmer
Anmeldungsdatum: 03.02.2005 Beiträge: 9
|
Verfasst am: 02.06.2005 10:14:34 Titel: |
|
|
Kuck dir mal die Seite an http://www.quirksmode.org/js/events_events.html
Da steht alles über Events, letztlich macht der IE mehr Probleme da du dort aufpassen musst ob du im Quirks oder Standardmode bist.
Ein Problem was unter Umständen bei deinem Skript noch auftaucht, ist, dass du keine Einheiten angibst:
[..].style.left = 100
Was left? es gäbe letztlich folgende Möglichkeiten:
http://www.html-world.de/program/css_me.php
Entweder rät der Browser was du willst oder du sagst es ihm einfach. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|