Zur Navigation

Mauszeigerposition-Abfrage-Funktion mit anderer Funkt. komb.

1 Tilman

Hallo,

auf http://de.selfhtml.org/javascript/objekte/event.htm#page_x_y habe ich folgenden Code gefunden:
<html><head><title>Test</title>
<script type="text/javascript">
function LayerPosition (Ereignis) {
  if (document.layers) {
    document.layers[0].left = Ereignis.pageX;
    document.layers[0].top = Ereignis.pageY;
  } else if (document.getElementById) {
    document.getElementById("layer").style.left = Ereignis.pageX + "px";
    document.getElementById("layer").style.top = Ereignis.pageY + "px";
  }
}
document.onmouseup = LayerPosition;
</script>
<style type="text/css">
#layer { position:absolute; top:100px; left:100px; width:100px; height:100px;
         background-color:#FFE0FF; border:solid 1px #000000; }
</style>
</head><body>
<div id="layer">Ein Layer</div>
<p>Klicken Sie irgendwo ins Dokument und der Layer folgt der Maus dorthin.</p>
</body></html>

Ich würde den Code gerne so umbasteln, dass die Position nur beim Klicken auf eine Tabellenzeile ermittelt wird (Funktioniert mal wieder nicht):
<tr onmouseup = "LayerPosition(Ereignis);"
Außerdem möchte ich an die Funktion noch Daten übergeben, wie kann ich das machen?

02.05.2009 21:49

2 Jörg Kruse

Die Beispiele auf der genannten SELFHTML-Seite werden fast alle auf diese Weise aufgerufen:

document.onmouseup = LayerPosition;

Der Event ist hierbei ein Kindknoten von document. "document.getElementById("irgendwas").event" funktioniert hier wohl nicht, so dass der Aufruf immer für das ganze Dokument gilt

In diesem Beispiel erfolgt der Aufruf über onclick() - und ist somit begrenzbar auf ein einzelnes HTML-Element. Allerdings funktioniert das "window.event" nicht im Firefox.

03.05.2009 12:24 | geändert: 03.05.2009 12:25

3 Jörg Kruse

Nachtrag

Man könnte es vielleicht mit einer zweiten Funktion versuchen

function LayerPosition (Ereignis) {
  if (document.layers) {
    document.layers[0].left = Ereignis.pageX;
    document.layers[0].top = Ereignis.pageY;
  } else if (document.getElementById) {
    document.getElementById("layer").style.left = Ereignis.pageX + "px";
    document.getElementById("layer").style.top = Ereignis.pageY + "px";
  }
}

function LayerPos1()
{
  document.onmouseup = LayerPosition;
}

<tr onmouseup="LayerPos1()">

03.05.2009 12:34

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]