Puh, hab mich jetzt dadurch gewühlt. Ein paar Kommentare mehr hätten es wesentlich leichter gemacht.
Zunächst mal ein paar Basics:
this.elements = Array();
Wozu soll elements gut sein? Es taucht später nicht mehr auf. Ich nehme mal an, du wolltest elements auf eine Array-Instanz zeigen lassen. Dazu müsstest du aber mittels dem Keyword new den Konstruktor aufrufen. Noch besser ist allerdings es einfach mittels dem Array-Operator "[]" zu initialisieren. Ich könnte mir vorstellen, dass der Fehler, warum dein Code nicht funtkioniert genauso der gleiche ist. "GUIenv" scheint deine GUIEnvironment-Instanz zu sein. Wie wird diese initialisiert? Den Code hast du uns leider vorenthalten.
Das Element mit der ID log ist ein einfaches <textarea>, verschwindet, später dann komplett aus dem Code.
Besser du logst mit
console.log("dein text");
Beim Initialisieren wird unteranderem folgendes gemacht:
document.onmousemove = GUIenv.doDrag;
document.onmouseup = GUIenv.stopDrag;
Das ist schade. Du hast einen objektorientierten Ansatz gewählt, kannst trotzdem nicht mehrere Instanzen gleichzeitig laufen lassen, weil du die veralteten Funktionszeiger "onmouseup" und co. verwendest. Besser du verwendest
~~~javascript
document.addEventListener("mousedown", function(e){
// do something
})
Grüße
-1UnitedPower