Tabellenzeile markieren

ludz

Erfahrenes Mitglied
Hallihallo...
hab ein Problem beim Markieren von Tabellenzeilen, also bei Mouseover andere Farbe, bei Mousedown Zelle markieren, bei erneutem Mousedown Markierung wieder entfernen etc. Ihr kennt das Ganze vielleicht aus phpMyAdmin.
An genau deren JavaScript-Funktion für dieses Ereignis habe ich mich auch orientiert. Es funktioniert auch soweit alles bis auf eine Sache: Wenn ich eine Zeile markiert habe, also darauf geklickt habe und später wieder über diese Zeile mit der Maus fahre, dann wird die Markierung einfach wieder entfernt. Das soll aber gerade nicht sein!

Hier mal mein Code:
PHP:
<script language="JavaScript">
	<!--
	var zeile_markiert=new Array;

	function markiere(zeile,nr,wie) {
		var farbe_markiert='#FFCC99';
		var farbe_hover='#EFEFEF';
		var farbe_normal='#FFFFFF';
		
		jetzt_farbe=zeile.style.backgroundColor;
				
		if(wie=='markiert') {
			if(zeile_markiert[nr]) {
				neue_farbe=farbe_normal;
				zeile_markiert[nr]=null;
			} else {
				neue_farbe=farbe_markiert;
				zeile_markiert[nr]=true;
			}
		} else if(wie=='hover') {
			if(!zeile_markiert[nr] || zeile_markiert[nr]=='undefined') {
				neue_farbe=farbe_hover;
			}
		} else if(wie=='normal') {
			if(!zeile_markiert[nr] || zeile_markiert[nr]=='undefined') {
				neue_farbe=farbe_normal;
			}
		}
		
		if(neue_farbe!='') {
			zeile.style.backgroundColor=neue_farbe;
		}
		
		return true;
	} 
	//-->
	</script>

die Tabellenzeilen sehen dann so aus:
PHP:
<tr onMouseover="markiere(this,0,'hover')" onMouseout="markiere(this,0,'normal')" onMousedown="markiere(this,0,'markiert')">
<tr onMouseover="markiere(this,1,'hover')" onMouseout="markiere(this,1,'normal')" onMousedown="markiere(this,1,'markiert')">
... usw.

weiß jmd. wo der Fehler liegen könnte?
 
Füge mal zu Beginn der Funktion
Code:
var neue_farbe='';
hinzu....um sicherzustellen,dass die Variable bei jedem Funktionsaufruf auch erstmal diesen Wert hat....welchen du ja später abfragst.
Sollte eigentlich reichen :)
 
Oh Mann *klatsch*
Gut, dass Dummheit nicht schlimmer bestraft wird... da hätte ich echt auch selbst drauf kommen müssen :-)

Also vielen Dank fatalus, es klappt jetzt alles wunderbar!
 

Neue Beiträge

Zurück