Mauskoordinaten bei mozilla/NS6
Chräcker Heller
- javascript
0 Robert Bamler0 Zapp0 Chräcker Heller0 Henryk Plötz0 Henryk Plötz0 Zapp
Hallo,
wenn ich mal was frage, lande ich immer an solche Reiztemen, doch genau dazu finde ich nie was. Vorhin hätte ich beinahe was zu "verändern des Cursors" gefragt, aber habs zum Glück noch selber rausgefunden ;-)
Also: vorab: ich habe das mit dem event-handler nie so richtig kapiert. Ich habe auf einer Seite mehrere Divs. Ich möchte beim Klick auf ein beliebiges Div eine Routine aufrufen. Habe ich per onClick im div-Tag gemacht. (Das ganze braucht nicht beim NS4.xy zu funktionieren....)
Wie erfahre ich beim mozilla nun die Mauskooddinate? Da habe ich ein event-Block vorm Kopf. Für die IEs habe ich
var x=event.x; var y=event.y+document.body.scrollTop;
aber wie bekomme ich die koordinaten beim mozilla? Bisher habe ich immer einen
document.onmousdown = koordinatenbestimmfunction
an "prominenter Stelle" ins Script geschrieben und dann in der Funktion "koordinatenbestimmfunction" gleich die koordinaten abgefragt. Aber ich will ja keine Funktion bei jedem(!) Mausklick aufrufen (in der eben dann die koordinate ermittelt wird) sondern ich möchte nur bei einem Klick auf eins der Divs eine Funktion aufrufen....
Habe mir gedacht: ist ja wurscht, rufe ich zu dem "onClick" per "document.onmousdown" halt die bestimmungsroutiene auf, klickt man auf dem Div, habe ich die Koordinate durch die Funktion, die ich per
document.onmousdown bestimmt habe, zur Verfügung, klickt der besucher "neben" einem Div, habe ich die koordinate zwar auch, aber kostet ja nichts. Aber irgendwie klapte dieser Ansatz nicht, die Koordinate "kam nie an" (sehr genau beschrieben, ich weiß....)
Gibts "denn" beim neuen DOM-System nicht eine einfache einheitliche Methode? Und wenn nein, wie gehts dann für den NS6 bzw mozilla? Stark verkürzt: wie komme ich nach einem klick auf ein Div (und nur dann) an die Mauskoordinate?
Danke,
Chräcker
Hallo,
versuch mal um den div herum einen ilayer zu notieren:
<ilayer name="testlayer"><div onClick="wasweisich();">...</div></ilayer>
[...] Bisher habe ich immer einen
document.onmousdown = koordinatenbestimmfunction
und dann statt dessen:
document.testlayer.document.onmousedown = koordinatenbestimmfunction;
zu schreiben. Sollte eigentlich funktionieren.
Robert
http://www.designauswahl.here.de
mit kostenlosem Webseiten-Generator ROBE.dit
[more than a HTMLE.dit]
hi
versuch mal um den div herum einen ilayer zu notieren:
<ilayer name="testlayer"><div onClick="wasweisich();">...</div></ilayer>
da steht Netscape6/Mozilla. Der hat diesen proprietären Kram nicht mehr.
http://selfhtml.teamone.de/dhtml/modelle/dom.htm#event_handling
das Beispiel da gibt u.a. in Mozilla und konqueror auch die absolute Mausposition zurück.
gruss Kai
Hallo,
die seite habe ich wohl "eben" immer überblättert, daß sieht ja "spannend komplex" aus, werde mal gleich mich reinknien.... Danke, auch an Robert für den versuch (keine Ironie....)
Chräcker
Hallo,
versuch mal um den div herum einen ilayer zu notieren:
<ilayer name="testlayer"><div onClick="wasweisich();">...</div></ilayer>
da steht Netscape6/Mozilla.
<schaem>Oups, hab ich wohl überlesen.</schaem> ;-)
Robert
Hallo Chräcker,
Wie erfahre ich beim mozilla nun die Mauskooddinate? Da habe ich ein event-Block vorm Kopf. Für die IEs habe ich
var x=event.x; var y=event.y+document.body.scrollTop;
Du kannst doch einen onclick-Event auf jeden beliebigen Div setzen:
document.getElementById('divID').onclick=SachWoDuBist;
Die Funktion kriegt dann mit 'e' den Event übergeben:
function SachWoDuBist(e){
alert('X: '+e.clientX+', Y: '+(e.clientY+scrollY));
}
Grüße, Stefan
Hallo,
Du kannst doch einen onclick-Event auf jeden beliebigen Div setzen:
genau dieses "doch" in Deiner Antwort beschreibt wunderbar mein Brett vorm Kopf. Na klar ;-) Danke.... (werde allerdings erst mal mit Kais Quellenangabe rumspielen, daß sieht auch recht spannend aus.... aber genau da saß mein Brett ;-))
Chräcker
Moin,
document.getElementById('divID').onclick=SachWoDuBist;
Na wenn wir schon dabei sind können wir ja auch richtige DOM-Events nehmen:
document.getElementById('divID').addEventHandler("click",SachWoDuBist, false);
function SachWoDuBist(e){
alert('X: '+e.clientX+', Y: '+(e.clientY+scrollY));
}
Was macht das scrollY da eigentlich?
--
Henryk Plötz
Grüße von der Ostsee
Moin,
document.getElementById('divID').addEventHandler("click",SachWoDuBist, false);
Ist wohl schon ein bisschen zu Spät. Das da ^^^^^^^ sollte natürlich Listener heissen.
--
Henryk Plötz
Grüße von der Ostsee
Hi,
document.getElementById('divID').onclick=SachWoDuBist;
Na wenn wir schon dabei sind können wir ja auch richtige DOM-Events nehmen:
document.getElementById('divID').addEventHandler("click",SachWoDuBist, false);
Ok, "addEventListener" wäre sicher korrekter. Mir ist aber kein DOM-Browser bekannt, der das "onclick" nicht interpretieren würde.
function SachWoDuBist(e){
alert('X: '+e.clientX+', Y: '+(e.clientY+scrollY));
}
Was macht das scrollY da eigentlich?
Das ist natürlich nur sehr schwer zu erraten. ;-)
http://www.mozilla.org/docs/dom/domref/dom_window_ref112.html#1000315
Chräcker hatte doch sowas in seinem Beispiel.
Grüße, Stefan