Moin!
Du kannst es aber z.B. so machen:
Kompliziert, würde ich meinen. :)
on...="fun(this.id);"
Eventhandler bezeichnen als "this" das Element, in dem sie drinstehen.
Mit onirgendwas="fun(this)" wird der Funktion exakt dieses Element übergeben.
function fun(x) {
if (document.getElementById){
document.getElementById(x).style.display = "none";
}}
Da das Element der Funktion schon bekannt ist, kann man direkt auf seine Properties zugreifen:
x.style.display = "none";
Fertig. Das Suchen der ID mit getElementById ist viel zu zeitaufwendig.
Als konkretes Beispiel: Mouseover-Highlighting mit Javascript (mußte IE-tauglich sein, JS ist definitiv eingeschaltet:
Javascript:
function hi(obj)
{
if (obj.parentNode)
{
obj.parentNode.parentNode.style.backgroundColor="#DDD";
}
}
function lo(obj)
{
if (obj.parentNode)
{
obj.parentNode.parentNode.style.backgroundColor="#FFF";
}
}
HTML:
<table>
<tr><td>Text</td><td><a href="linkziel" onmouseover="hi(this)" onmouseout="lo(this)">bearbeiten</a></td></tr>
</table>
Die Hintergrundfarbe der <tr>-Zeile wird geändert.
- Sven Rautenberg