EventHandler doppelt benutzen?

colophonius

Grünschnabel
Hi zusammen,

ich hab folgendes Problem, vielleicht ja jemand so früh morgens ne Idee ;o)

Also ich habe einen Link, mit dem ein Popup direkt neben dem Link aufgeht und nun bräuchte ich noch im PopUp (ist übrigens ein div) einen Link bereich, mit dem ich dieses verschieben kann...

ich verwende
document.onmouseup = PopUpPosition; um die Position der Maus auf dem Bildschirm abzufragen und das Popup entsprechend zu setzen.

nun hab ich bereits nen bischen rumgetüftelt und bin beim drag und drop auf folgendes gestoßen:

Javascript:
//Das Objekt, das gerade bewegt wird.
var dragobjekt = null;

// Position, an der das Objekt angeklickt wurde.
var dragx = 0;
var dragy = 0;

// Mausposition
var posx = 0;
var posy = 0;

function draginit() {
 // Initialisierung der Überwachung der Events
  document.onmousemove = drag;
  document.onmouseup = dragstop;
}


function dragstart(element) {
  dragobjekt = document.getElementById(element);
  dragx = posx - dragobjekt.offsetLeft;
  dragy = posy - dragobjekt.offsetTop;
}


function dragstop() {
  //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
  dragobjekt=null;
}


function drag(ereignis) {
  //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.
  posx = document.all ? window.event.clientX : ereignis.pageX;
  posy = document.all ? window.event.clientY : ereignis.pageY;
  if(dragobjekt != null) {
    dragobjekt.style.left = (posx - dragx) + "px";
    dragobjekt.style.top = (posy - dragy) + "px";
  }
}

HTML-Teil
im Body:
HTML:
<script type="text/javascript">draginit();</script>
beim Element:
HTML:
<div onmousedown="dragstart('element1')">drag here</div>

jetzt stören sich aber logischerweise die beiden Funktionen...

Hat irgendjemand ne Idee, wie ich das umsetzen könnte?
Ich möchte wegen der optik kein echtes Fenster benutzen, daher das div.

Viele Grüße aus Augsburg,
Colo
 
Hi,

hast du das Problem mittlerweile in den Griff bekommen, oder weshalb ist das Thema in der Forenübersicht als "erledigt" (=gelöst) markiert?

mfg Maik
 
Fein, dann wäre es doch eine runde Sache, wenn du deine Lösung hier auch postest, damit zukünftige Hilfesuchende / Leser in diesem Thema auch einen Lösungsansatz vorfinden.

mfg Maik
 
So, sorry für die Verspätung...

Nun wie versprochen meine Lösung des Problems:

Ich habe auf die Links, also den "popup-öffen"- und den "popup-verschieben"- link eine onmousedown Funktionalität gelegt.

Diese setzt eigentlich nur eine Variable abc = 'popupoeffnen' oder abc = 'popupverschieben'.

In der Funktion die bei document.onmouseup aufgerufen wird, habe ich schlicht mit if abgefragt, in welchem Vorgang man ist, öffnen oder verschieben und dann entsprechend reagiert...

Fertig...

Eigentlich ganz simpel...

vg, matthias
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück