# OnClick: Tbl Zeile Markieren



## WMasterK (31. Januar 2004)

Hallo,

Ich habe hier folgende Funktion aus einem Thema weiter hinten:
function setStyle(obj){
      obj.style.backgroundColor = '#1A3A4D';
      obj.style.color = '#102B3B';
    }

function resetStyle(obj){
      obj.style.backgroundColor = '#102B3B';
      obj.style.color = '#102B3B';
    }

Die ich mit: onmouseover='setStyle(this)' onmouseout='resetStyle(this)' onclick='setStyle(this)'
benutze!

Nun, meine Frage ist, wie kann ich es machen, das onClick die Tabellen Zeile markiert wird (mit einer Farbe) und bei einem 2. Click wieder deMarkiert wird?

Einfach mit onClick geht nicht, da ich dazu den Rollover Effekt entfernen müsste! Ich muss doch Prüfen ob die Zeile bereits markiert ist oder nicht, oder? Wie mache ich das?

MfG WMK


----------



## Sir Robin (31. Januar 2004)

Setz einfach eine globale Variable ... wenn markiert dann ist sie true, wenn nicht, dann false ... dann kannst du leicht prüfen ob das Ding schon markiert ist, oder nicht ...

im Übrigen kannst du auf die Tabellenhintergrundfarbe nicht nur schreibend, sondern auch lesend zugreifen .... damit gehts auch ..


----------



## WMasterK (31. Januar 2004)

Globale Variable? Ich hab erst seit kurzem Erfahrung mit JavaScript, wiel ich eher PHP Mäßig informiert bin! Wärest du so nett und schreibst mir das mal in Ansätzen in Code auf?

MfG WMK


----------



## Sven Mintel (1. Februar 2004)

könntest du so machen:

```
<script type="text/javascript">
<!--
function setStyle(obj,e)
{
	if(e)
		{
		if(obj.id=='clicked')
			{
			obj.id='unclicked';
			resetStyle(obj,true);
			return;
			}
		obj.id='clicked';
		}
	obj.style.backgroundColor = '#1A3A4D';
	obj.style.color = '#102B3B';
}

function resetStyle(obj,e)
{
if(obj.id=='clicked')
	{
		return;
	}
	obj.style.backgroundColor = '#102B3B';
	obj.style.color = '#102B3B';
}
//-->
</script>
```
Das Skript setzt beim ersten Klick die ID des Objektes auf 'clicked', beim zweiten auf 'unclicked' .. anhand der ID kann es dann entscheiden, was zu tun ist.
Das geht aber nur, falls du die ID der Reihen nicht für etwas anderes benötigst... hat aber den Vorteil, dass so unkompliziert für jede einzelne Reihe der Zustand
"gespeichert" werden kann... und ich nehme mal an, du hast mehrere Reihen, bei denen das laufen soll 

Der Aufruf ändert sich ein wenig:

```
<tr onmouseover='setStyle(this,false)' onmouseout='resetStyle(this,false)' onclick='setStyle(this,true)'>
```


----------

