undefinierte Variable hat einen Wert?!

Nord-Süd-Richtung

Erfahrenes Mitglied
Hi

wäre jemand so freundlich und erklärt mir, warum mir alert(e); [Object Mouse Event] Ausgibt?
Code:
function drag(e){
  alert(e);
  if( document.getElementById(drag_id) == null || drag_allowed == 0)
    return false;
}
window.onmousemove = drag;
 
Hi,

im IE (zumindest in älteren) musst Du auf das Objekt über window.event zugreifen. Macht macht also in der Regel erstmal eine Abfrage, ob e gesetzt ist. Schau Dir mal das Beispiel an. Wenn Du eine zusätzliche Variable übergeben willst, müsste das z.B. so aussehen:

Javascript:
function drag(e, bar){
   [...]
   alert(bar);
   [...]
}
foo = 'oops';
window.onmousemove = function(e) { drag(e, foo); };

LG
 
Hi
ja das weiß ich ja ;) Ich wunder mich nur warum a nicht undefined ist, obwohl ich keinen Parameter übergebe :suspekt:
edit: Ich habs im Firefox getestet.
 
Hi
ja das weiß ich ja ;) Ich wunder mich nur warum a nicht undefined ist, obwohl ich keinen Parameter übergebe :suspekt:
Warum a? Meinst du e?

Du rufst ja die Funktion auch gar nicht auf. Der Funktionsaufruf findet erst später statt - falls das entsprechende Ereignis ausgelöst wird. Und zu diesem Zeitpunkt hast du den Funktionsaufruf nicht unter Kontrolle.

Gruß
 
Upps, ja ich meinte e ;)
Wenn ich sowas wir habe
<div onmouseover="drag(event);"></div>
Dann nutze ich ja den Parameter, und e sollte dann definiert sein.
Aber bei window.onmousemove = drag; ist doch kein Parameter, reden wir aneinandervorbei oder bin ich einfach zu blöd? :confused:
 
Wenn ich sowas wir habe
<div onmouseover="drag(event);"></div>
Hier rufst du die Funktion auf.
Aber bei window.onmousemove = drag; ist doch kein Parameter
Hier rufst du die Funktion ja auch überhaupt nicht auf. Die Funktion wird später erst aufgerufen, und du kannst gar nicht sehen mit welchen Parametern der Aufruf dort passiert.
reden wir aneinandervorbei oder bin ich einfach zu blöd? :confused:
Muss ich darauf antworten? ;-)

Gruß
 

Neue Beiträge

Zurück