WernerK: sehr verwirrend ;-) Weitere Fragen

Beitrag lesen

Hallo struppi,
vielen Dank.

Wenn du auf die Option verzichten kannst, könnte die funktion auch so aussehen:

function getX(obj) {

var o = typeof(obj)=="object" ? o : document.getElementById ? document.getElementById(o) : null;
if(o) return o.offsetLeft;
return null;
}

  
Ich bin mit manchen JS Dingen einfach noch nicht so vertraut.  
Ich mache nun schon seit gestern Abend an etwas herum und dabei sind so viele Fragen aufgetaucht.  
Ursprünglich war die Funktion (habe ich im Netz gefunden) so:  
~~~javascript
  
function getX(obj,relative) {  
var x=0;  
if(typeof(obj)=="object" && document.getElementById) {  
x=obj.offsetLeft;  
if(obj.offsetParent && !relative) {  
x+=getX(obj.offsetParent);  
} return x;  
} else {  
return false;  
}  
}//end function  

Dazu gibt es das gleiche für die Y Position.
Ich wollte das ausnutzen um einen Tooltip direkt neben einer Grafik anzuzeigen.
Ich hatte es so versucht:

  
<body>  
..  
<form>  
<img src="../logo.jpg" alt="logo" title="" id="logo" onmouseover="Tooltip(this.form.modsel,'angezeigter Text');" onmouseout="hideTooltip();">  
<select name="modesel" id="modesel">  
..  
</select>  

Die Funktion tooltip:

  
function Tooltip(obj,text){  
Xpos = getX(obj,false);//true if position should be relative  
alert(Xpos);  
XposTip = Xpos + 200 + "px";  
Ypos = getY(obj,false);  
YposTip = Ypos + 5 + "px";  
varobj = document.createElement ("div");  
varobj.id = "mytooltip";  
varobj.style.left = XposTip;  
varobj.style.top = YposTip;  
document.body.appendChild (varobj);  
this.varobj.innerHTML = text;  
}//function  

Und dann kamen die Probleme.
Mit "Tooltip(this.form.modsel,'angezeigter Text')" gab es die Fehlermeldung
"this.forms has no properties"
Warum diese Meldung?

Dann hatte ich es mit
Tooltip(document.forms.modsel,'angezeigter Text')
versucht. Da gab es keine Fehler mehr aber "getX" brachte immer "false" zurück.

Es müsste doch eigentlich ein Objekt zurückgeliefert werden?
Warum schlägt die Prüfung mit
"if(typeof(obj)=="object" fehl?

Das alles ist für mich immer noch sehr verwirrend.
Sorry für die vielen Fragen.

Gruss
Werner