OnClick: Tbl Zeile Markieren

WMasterK

Grünschnabel
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
 
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 ..
 
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
 
könntest du so machen:
Code:
<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:
Code:
<tr onmouseover='setStyle(this,false)' onmouseout='resetStyle(this,false)' onclick='setStyle(this,true)'>
 

Neue Beiträge

Zurück