Zugriff von Funktionen auf "this" - Elemente
Martin Krüger
- javascript
Ave alle zusammen,
ich progammiere gerade an einem neuen Script herum um hab einige Probleme beim Zugriff darauf. Zuerst aber ein kleiner Code Schnipsel:
----------------------------------------------------------------------
t+='<div id="'+cid+'_body" style="position:absolute; left:'+x+'px; top:'+y+'px; width:'+w+'px; height:'+h+'px; padding:0 0 0 0; overflow:hidden;">';
t+='<div id="'+cid+'_body_middle" style="position:absolute; top:30px; left:0px; width:'+w+'px; height:'+(h-60)+'px;">';
t+='<div id="'+cid+'_body_middle_left" style="position:absolute; top:0px; left:0px; width:50px; height:'+(h-60)+'px; overflow:hidden;"><img name="'+cid+'_body_middle_left_picture" src="images/middle-left.gif" border=0 nosave></div>';
t+='<div id="'+cid+'_body_middle_center" style="position:absolute; top:0px; left:50px; width:'+(w-100)+'px; height:'+(h-60)+'px; overflow:hidden;"><img name="'+cid+'_body_middle_center_picture" src="images/middle-center.gif" border=0 nosave></div>';
t+='<div id="'+cid+'_body_middle_right" style="position:absolute; top:0px; left:'+(w-50)+'px; width:50px; height:'+(h-60)+'px; overflow:hidden;"><img name="'+cid+'_body_middle_right_picture" src="images/middle-right.gif" border=0 nosave></div>';
t+='</div>';
this.IDb=document.getElementById(cid+'_body');
this.IDb.onmousedown=trackMouseGrabId;
this.IDb.onmouseup=trackMouseStop;
----------------------------------------------------------------------
Diese Funktion erzeugt einem HTML Code mit verschachtelten Div Tags im Anschluss daran erzeugt es ein "this" - Element und speichert den "Elementnamen" darin.
----------------------------------------------------------------------
function trackMouseGrabId( )
{
var ex = (IE5)? event.clientX+document.body.scrollLeft : evt.pageX;
var ey = (IE5)? event.clientY+document.body.scrollTop : evt.pageY;
xoff = parseInt(this.IDb.style.left) - ex;
yoff = parseInt(this.IDb.style.top) - ey;
currIDb=this.IDb;
}
----------------------------------------------------------------------
Diese Funktion soll nun als "Mouse" - Tracker dienen, nur verweigert der Browser den Zugriff auf das Element "this.IDb" und meint das Element ist null oder kein Objekt.
Jemand ein Idee?
mfg martin
Ave alle zusammen,
Ave,
this.IDb.onmousedown=trackMouseGrabId;
this.IDb.onmousedown=trackMouseGrabId();
this.IDb.onmouseup=trackMouseStop;
this.IDb.onmouseup=trackMouseStop();
Bye,
Peter
Ave Peter,
this.IDb.onmousedown=trackMouseGrabId();
this.IDb.onmouseup=trackMouseStop();
netter Gedanke, aber das funktioniert so nicht.
Das onMouseDown - Event übergibt einen undef. Referenr an die trackMouseGrabId - Funktion deswegen muss ich normalerweise die () weglassen ( würde sonst eine leere Parameter List übergeben ).
Trotzdem danke.
Jemand eine weitere Idee?
mfg martin
Hallo Martin
Mit dem Schlüsselwort "this" sprichst du das Objekt an, in dem du dich gerade befindest. In einer normalen Funktion weiß ich nicht, welches das ist. Vielleicht die Funktion selber.
In diesem zusammenhang ist es jedenfalls unsinnig, einer Eigentschaft von this irgend etwas zuzuweisen.
Warum verwendest du nicht einfach eine normale Variable?
Grüße
Daniel