Antje Hofmann: cell.children.tags('a')[0].click();

Beitrag lesen

Hallo Sebastian

ich habe eine Tabelle mit Links, bei der der jeweilige Link auch beim Anklicken der dazugehörigen Zeile (tr) aufgerufen werden soll. Das untenstehende Skript (verkürzt) sollte eigentlich funktionieren, wenn es im "td" aufgerufen wird. Da ich aber drei Spalten (td) pro Zeile (tr) habe, möchte ich den onClick-Aufruf in das "tr" verlegen.

hm, ich würde das ganze so lösen (ungetestet):

<tr onClick="self.location.href="page1.htm'">
<td><img src="img/bullet.gif"></td>
<td><img src="img/blank.gif"></td>
<td><a href="page1.htm" onclick="if (document.all || document.getElementById) return false;">Page 1</a></td>
</tr>

IE ab Version 4 und Opera /NN 6 sollten jetzt eigentlich den Event auf das tr ausführen, egal auf welche Zelle geklickt wird. NN4 und jünger verwenden den a-tag.
Dies liegt daran, dass Ereignisse und ein Mausklick ist ein Ereignis weitergericht werden bis jemand darauf reagiert.

Aber es gibt definitiv noch eine elegantere Lösung, nur habe ich keine Lust mehr die zu suchen.

Wie kann ich von dort aus auf das "a"-tag zugreifen? Ich habe leider bei SelfHTML nichts zu diesem Thema gefunden.

Danke für alle Tips,

Grüße,

Sebastian Becker


function mClick(cell)
{
if (event.srcElement.tagName == 'td') cell.children.tags('a')[0].click();
}

...

<table>

<tr>
<td><img src="img/bullet.gif"></td>
<td><img src="img/blank.gif"></td>
<td onClick="mClick(this);"><a href="page1.htm">Page 1</a></td>
</tr>

</table>