Element unter Mouseup-Event ermitteln
Michael
- javascript
Hallo,
bei einer Webanwendung mit drag and drop müsste ich das Element ermitteln über dem das verschobene Element losgelassen wird. Das Loslassen läuft über ein dokumentweites mouseup-event (also document.onmouseup = loslassen).
Via Pixelposition geht es nicht, weil die Elemente darunter keine festen Positionen und keine feste Reihenfolge haben. Mit target bin ich bisher nicht weitergekommen, da das target beim loslassen ja immer das verschobene Element ist. Jetzt bin ich am überlegen ob sich was tricksen ließe, wenn man beim loslassen gleich einen neuen event-handler erzeugt um dann über diesen irgendwie weiterzukommen. Aber vielleicht gehts ja doch viel einfacher und ich komme nicht drauf. Deshalb wollte ich anfragen, ob jemand vielleicht einen Tipp hätte, wie man sowas lösen könnte.
Bin für jede Hilfe dankbar.
Viele Grüße
Michael
Hallo Michael.
Via Pixelposition geht es nicht, weil die Elemente darunter keine festen Positionen und keine feste Reihenfolge haben.
Warum sollten sie nicht? Siehe http://de.selfhtml.org/javascript/objekte/all.htm@title=offset*.
Einen schönen Dienstag noch.
Gruß, Ashura
Hallo Ashura.
Danke für die schnelle Antwort. Hilft mir nur leider noch nicht weiter.
Via Pixelposition geht es nicht, weil die Elemente darunter keine festen Positionen und keine feste Reihenfolge haben.
Warum sollten sie nicht? Siehe http://de.selfhtml.org/javascript/objekte/all.htm@title=offset*.
Vielleicht habe ich mich etwas schlecht, bzw. missverständlich ausgedrückt - mit keine festen Positionen und keine feste Reihenfolge meinte ich, dass die entsprechenden Elemente erst zur Laufzeit durch drag and drop angeordnet werden (Reihenfolge, Anzahl), zudem haben sie auch keine feste Höhe. Ich müsste also um mit Pixelpositionen arbeiten zu können vor jedem drag and drop die Anordnung der aller Elemente (auf die etwas "gedropt" werden könnte) auswerten und speichern um dann damit die Pixelposition beim Loslassen zu vergleichen.
Das wäre auch ne Menge Arbeit und ich wäre froh, wenn es doch irgendwie einfacher ginge.
Viele Grüße und auch Dir noch nen schönen Dienstag, auch wenn er nicht mehr lange dauert.
Michael
Vielleicht habe ich mich etwas schlecht, bzw. missverständlich ausgedrückt - mit keine festen Positionen und keine feste Reihenfolge meinte ich, dass die entsprechenden Elemente erst zur Laufzeit durch drag and drop angeordnet werden (Reihenfolge, Anzahl), zudem haben sie auch keine feste Höhe. Ich müsste also um mit Pixelpositionen arbeiten zu können vor jedem drag and drop die Anordnung der aller Elemente (auf die etwas "gedropt" werden könnte) auswerten und speichern um dann damit die Pixelposition beim Loslassen zu vergleichen.
Das wäre auch ne Menge Arbeit und ich wäre froh, wenn es doch irgendwie einfacher ginge.
Mir ist kein anderer weg bekannt. Im IE gibt es ondrop ob du damit an die Information kommst weiß ich aber nicht.
Struppi.
Hallo Struppi,
vielen Dank schon mal. Hab mir die Ref. in der MSDN kurz durchgelesen und das hört sich erstmal schon so an... dumm nur, dass es keine (W3C)Entsprechung für diesen MS-spezifischen Handler gibt (zumindest laut MS), aber ich probiers vielleicht trotzdem mal aus.
Ich befürchte, dass ich dann um eine "komplizierte Lösung" nicht herum kommen werde...
Viele Grüße
Michael
Hallihallo!
Ich habe vor einer halben Ewigkeit mal so etwas Ähnliches gemacht, vielleicht hilft Dir der Quelltext ja weiter.
(wie gesagt, ist schon lange her, läuft aber zumindest in IE6 und aktuellem Mozilla & FF)
meine Drag- and Drop Navigation
Ich meine, ich hätte das über die Mausposition gelöst, musst es Dir einfach mal ansehen...
Viele liebe Grüße,
Der Dicki
Hallo Dicki,
Ich habe vor einer halben Ewigkeit mal so etwas Ähnliches gemacht, vielleicht hilft Dir der Quelltext ja weiter.
(wie gesagt, ist schon lange her, läuft aber zumindest in IE6 und aktuellem Mozilla & FF)
So weit ich sehe ist es über die Mausposition bzw. einen Positionsvergleich gelöst (ablx, ably usw.). Das hilft mir leider nicht wirklich, da ich genau das umgehen möchte, wenns irgendwie geht.
Trotzdem aber herzlichen Dank.
Viele Grüße
Michael
Hallo,
Du kannst Mouseover-Events dokumentweit überwachen, die bubbeln auch. Auf die Weise kannst du dir das letzte Element merken, bei dem ein Mouseover passierte. Wird die Maustaste losgelassen, so ist das Element, bei dem der letzte Mouseover passierte, das gesuchte.
Es gibt glaube ich auch eine Funktion, die dir das Element an der Stellt X/Y im Dokument zurückgibt - aber die ist IE-spezifisch und ihr Namen fällt mir nicht ein.
Mathias