Axel Richter: onmouseout verhindern ohne neu zu laden

Beitrag lesen

Hallo,

Wie kann ich das erreichen?
Indem man bei onclick die Eigenschaft onmouseover auf NULL setzt.
Ah ja, das ist gut! Nur, was mache ich, wenn ich auf eine andere Zeile klicke, und diese markiere, wie kann ich dann die alte wieder "lösen"? Also die Farbe wieder ändeern wie eigentlich bei onmouseout? Und wie aktiviere ich onmouseout wieder?

Das klappt wohl nicht. Eine Funktion mit Parametern lässt sich, soweit ich weiß, nicht mit JavaScript zuweisen, und mindestens einen Parameter brauchst Du, um zu kennzeichnen, um welche Zelle es nun geht. Man kommt also nichtum eine globale "Flag-Variable" herum.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Mouseover</title>
<script type="text/javascript">
<!--
var active_td = null;

function td_mout(mytd) {
  if (mytd != active_td) {
    mytd.style.backgroundColor = '#00AEAD';
  }
}
function td_reset() {
  var tds = document.getElementsByTagName("td");
  for (var i = 0; i < tds.length; i++) {
    if (tds[i] != active_td) {
      tds[i].style.backgroundColor = '#00AEAD';
    }
  }
}
//-->
</script>
</head>
<body>
<table >
<tr>
 <td style="background-color:#00AEAD;" onmouseover="this.style.backgroundColor='#FF7D7B';" onmouseout="td_mout(this);" onclick="active_td=this; td_reset();">Tabellenzelle</td>
</tr>
<tr>
 <td style="background-color:#00AEAD;" onmouseover="this.style.backgroundColor='#FF7D7B';" onmouseout="td_mout(this);" onclick="active_td=this; td_reset();">Tabellenzelle</td>
</tr>
<tr>
 <td style="background-color:#00AEAD;" onmouseover="this.style.backgroundColor='#FF7D7B';" onmouseout="td_mout(this);" onclick="active_td=this; td_reset();">Tabellenzelle</td>
</tr>
<tr>
 <td style="background-color:#00AEAD;" onmouseover="this.style.backgroundColor='#FF7D7B';" onmouseout="td_mout(this);" onclick="active_td=this; td_reset();">Tabellenzelle</td>
</tr>
</table>
</body>
</html>

viele Grüße

Axel