Probleme mit onClick & onBlur

pogo

Erfahrenes Mitglied
Hi,

ich arbeite gerade an einem Kalender, den ich mit PHP umgesetzt habe.

Jetzt möchte ich daß wenn auf einen Tag geklickt wurde dieser die Hintergrundfarbe ändert und wenn ein anderer ausgewählt wird wieder die Ursprungsfarbe bekommt.

blöd zu erklären, ist aber so ;)

Momentan mache ich dies so:
PHP:
<td style="background-color: #FFFFFF;" onClick="this.style['backgroundColor'] = '#9FD3F0';" onBlur="this.style['backgroundColor'] = '#FFFFFF';">$tag</td>

Leider ist bei dieser Methode der Tag nicht mehr makiert, wenn ich auf ein Textfeld oder Button klicke.

Hatt jemand eine Idee / Lösung für mein Problem?
 
schreib ne javascriptfunktion, die, bevor du die onfocus-farbe setzt, alle anderen felder wieder in den urzustand zurücksetzt.
jede td bekommt ihre eigene style-class und mit js sprichst du sie an.

nur so ne idee

:) Mogler
 
Hallo,

geb jeder Zelle eine id und speicher diese dann bei einem Klick in eine Variable.
Bevor du aber die Variable setzt, liest du den alten Wert aus, und veränderst
bei dieser id dann die Hintergrundfarbe.
 
Hallo,
ich habe nun folgende Funktion geschrieben:
PHP:
function selected(p_id) {
	for(i=1; i <=30, i++) {
		document.getElementById("tag"+i).style.backgroundColor = "#FFFFFF";
	}
	
	document.getElementById(p_id).style.backgroundColor = "#9FD3F0";
}

Zu erst setze ich bei allen Feldern die Hintergrundfarbe wieder auf Weiß.
Dann wird das ausgewählte Feld eingefärbt.

Leider habe ich noch ein Problem... es sind ja nicht immer 30 Tage im Monat, also hatt jemand eine idee wie ich die Anzahl der aktuellen Tage / bzw. die anzahl der IDs herrausfinde?

Sonst weiss die Funktion ja nicht bei wievielen Tagen der Hintergrund wieder Weiß wird.

Danke für eure Hilfe!
 
Zuletzt bearbeitet:
Les dir meinen Post nochmal durch...

Noch ein bisschen Code, vielleicht schaffst du's ja dann..
Code:
<script type="text/javascript">

var sID = '';

function setColor(a_sID)
{
    if (sID != '') {
        window.document.getElementById(sID).style['backgroundColor'] = '#FFFFFF';
    }
    window.document.getElementById(a_sID).style['backgroundColor'] = '#000000';

    sID = a_sID;
}

</script>

<td id="tag1" onclick="setColor(this.id);" style="background-color:#FFFFFF;">
<td id="tag2" onclick="setColor(this.id);" style="background-color:#FFFFFF;">
<td id="tag3" onclick="setColor(this.id);" style="background-color:#FFFFFF;">
Btw. gibt es kein onblur bei Zellen.
 
Zuletzt bearbeitet von einem Moderator:
@Fabian Hofmann

Danke!

leider habe ich Deinen Lösungsweg zuerst nicht verstanden, aber jetzt finde ich ihn viel logischer und besser als meinen. ;)

Gruß pogo
 

Neue Beiträge

Zurück