bubble: drag&drop element wird nicht gespeichert

Beitrag lesen

Hi,
für den Lerneffekt erfinne ich grade das Rad neu, um genau zu sein eine minimale GUI.

Nun sitz ich grade beim Verschieben der "Fenster" fest.

Ich habe eine "Klasse" GUIenvironment:

function GUIEnvironment(rootElement)  
{  
	this.root = rootElement;  
	this.elements = Array();  
   //dragging vars  
	this.dragObj = null;  
	this.mouse = new Point(0,0);  
	this.offset = new Point(0,0);  
   //browser related  
	this.ie = document.all && !window.opera;  
}  
  
GUIEnvironment.prototype.doDrag = function(e)  
{  
	if(this.ie)  
		this.mouse = new Point(window.event.clientX, window.event.clientY);  
	else  
		this.mouse = new Point(e.pageX, e.pageY);  
  
	document.getElementById("log").value += "\n do_drag "+(this.dragObj?"set":"null");  
	if(this.dragObj)  
	{  
		this.dragObj.style.left = (this.mouse.x - this.offset.x)+"px";  
		this.dragObj.style.top = (this.mouse.y - this.offset.y)+"px";  
	}  
}  
  
GUIEnvironment.prototype.startDrag = function(obj)  
{  
	this.dragObj = obj;  
	document.getElementById("log").value += "\n start_drag "+(this.dragObj?"set":"null");  
	this.offset = new Point(this.mouse.x - obj.offsetLeft, this.mouse.y - obj.offsetTop);  
}  
  
GUIEnvironment.prototype.stopDrag = function(event)  
{  
	document.getElementById("log").value += "\n stop_drag "+(this.dragObj?"set":"null");  
	this.dragObj = null;  
}

Das Element mit der ID log ist ein einfaches <textarea>, verschwindet, später dann komplett aus dem Code.

Beim Initialisieren wird unteranderem folgendes gemacht:

		document.onmousemove = GUIenv.doDrag;  
		document.onmouseup = GUIenv.stopDrag;

Im onmousedown Event des Elements, das verschoben werden soll rufe ich dann window.GUIenv.startDrag(this); auf.

Wenn ich nun die Maus auf das Element bewege kommt halt, wie es sein soll, "do_drag null" im log,
wenn ich klicke und die Maustaste gedrückt lasse erscheint auch noch "start_drag set",
wenn ich jetzt aber die Maus bewege um das Element zu verschieben kommt wieder "do_drag null" (this.dragobj hat jetzt einen falschen Wert :-/),
wenn ich die Maustaste wieder los lasse kommt auch wieder fälschlicher weise "stop_drag null".

Das sind allerdings auch alle Funktionen die dragObj lesen/schreiben =/

Ich wind partout den Fehler nicht :(

MfG
bubble