Struppi: Funktions Problem this

Beitrag lesen

OK, nochmal von Anfang an:

<tr style="background: #cccccc;"
    onmouseover="this.style.cursor='hand' ; this.style.backgroundColor='green' ; status='over 3'"
    onmouseout="ChangeCol(this)  ; status=''"

onclick="ChangeText('txt',this);"
    id="tab3">

Hier ist *this* der Zeiger auf das Objekt von wo aus du die Funktion aufrufst. Konkret ist es das <tr> element.

Zur Verdeutlichung:
<tr  onclick="alert(this.id);" id="tab3">

In deiner funktion ist this die Funktion selber

function ChangeText(txt,obj)
{
   aktiveZeile=this.id;
}

Das ist falsch, denn die Funktion hat keine id!

<tr style="background: #cccccc;"
    onmouseover="this.style.cursor='hand' ; this.style.backgroundColor='green' ; status='over 3'"
    onmouseout="ChangeCol(this)  ; status=''"

onclick="ChangeText('txt',this);"
    id="tab3">

Wenn du jetzt den Hinweisen der Besserwisser nachgehen würdest und zum Beispiel dich fragen, was hier mit dem this passiert solltest du zumindest ein Teil deines Problems lösen.

Ein großes Problem für dein Verständnis ist, der Unterschied zwischen JS Code in einem HTML Event Handler (onclick="ChangeText('txt',this);") und JS Code im Skriptblock.

Nur im HTML Block muss JS code von Anführungszeichen umgeben werden um ihn vom restlichen HTML Code abzugrenzen.

Innerhalb eines Skriptblocks ist das einfach String und kein Code, also überflüssig.

Du müßtest bei deinem Code auch eine Fehlermeldung erhalten http://glasgoogle.de sagt dir wie und sinnvollerweise nutzt du Mozilla um JS zu entwickeln da die Fehlermeldungen wesentlich aussagekräftiger sind.

Aber!

Alles in allem ist das was du vorhast sowieso nicht ratsam. Du willst einen Lnk nur per JS Verfügbar machen, das ist kontraproduktiv und es besteht auch keine notwendigkeit dazu.
schau dir mal an, was man mit CSS alles für Effekte erzielen kann ohne eine Zeile JS http://css.maxdesign.com.au/listamatic/

und wenn dir das zu kompliziert ist, dein Problem liesse sich in etwa auch so lösen:

HTML:
<table id="menu">
<tr>

<td><a href="#">link</A></td>

</tr>

</table>

CSS:

#menu a:link{
display:block;
background-color:green;
}

#menu a:hover{
display:block;
background-color:#ccc;
}

Struppi.