[GastForen Programmierung/Entwicklung JavaScript Tabellenfarbe mit Javascript ändern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Tabellenfarbe mit Javascript ändern

Anonym
Beiträge gesamt: 22827

11. Feb 2004, 06:56
Beitrag # 1 von 7
Bewertung:
(7302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey

Ich möchte die Tabellenfarbe nach einem Mouseover und dem drücken einer Taste dauerhaft ändern. Doch irgenwie krieg ich das dauerhaft nicht hin. Kann mir da mal jemand helfen

<script type="text/javascript">
<!--
function test(x) {
if (x.bgColor=="#ffffff" && window.event.ctrlKey)
{
alert(x.bgColor + " weiss");
}
else
if (x.bgColor=="#ff0000" && window.event.ctrlKey)
{
alert(x.bgColor + " rot");
}
}
//-->
</script>

Tabellenzelle:
<td bgcolor="#FFFFFF" onMouseOver=test(this)>&nbsp;</td>

Das alert habe ich nur eingefügt um zu prüfen ob überhaupt das bgcolor übergeben wird.

By Huflatisch
X

Tabellenfarbe mit Javascript ändern

Markus Walker
Beiträge gesamt: 494

11. Feb 2004, 21:06
Beitrag # 2 von 7
Beitrag ID: #70027
Bewertung:
(7302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen


als Antwort auf: [#69831]

Tabellenfarbe mit Javascript ändern

Anonym
Beiträge gesamt: 22827

11. Feb 2004, 23:56
Beitrag # 3 von 7
Beitrag ID: #70044
Bewertung:
(7302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey

Danke für die antwort. Ich habe mir das mal alles zu gemüte geführt. Ich komm aber einfach auf keinen grünen Zweig. Mittlerweile bin ich schon soweit das ich mit ctrl und mousover die Zelle rot färben kann. Und wenn ich ne rote Zelle habe die mit shift und mouseover weiß machen kann. aber ich kriegs einfach nicht hin ne weiße zelle auf die Art rot zu färben und dann dieselbe mit der anderen Taste und Mouseover wieder weiß einzufärben. (siehe script). Weis jemand wie ich das machen kann

Und am Ende will ich das ganze noch in ne mysql Datenbank schreiben. Um dann das immer mit den Änderungen wieder aufzurufen. Aber das krieg ich schon hin. Im php kenn ich mich ein bissel besser aus.

function zelle(x) {
if (x.bgColor=="#ffffff" && window.event.shiftKey)
{
document.getElementsByTagName("td")[0].style.backgroundColor='#ff0000'
}
if (x.bgColor=="#ffffff" && window.event.ctrlKey)
{
document.getElementsByTagName("td")[0].style.backgroundColor='#ffffff'
}
}

Tabellenzelle:
<td id="t0" bgColor="ffffff" onMouseOver=zelle(this)>&nbsp;</td>


By Huflatisch
PS: Ich weis das das nur im IE geht ;-)


als Antwort auf: [#69831]

Tabellenfarbe mit Javascript ändern

Markus Walker
Beiträge gesamt: 494

12. Feb 2004, 07:50
Beitrag # 4 von 7
Beitrag ID: #70060
Bewertung:
(7302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wieso bringst Du die bestehende Zellen-Farbe mit in die if-Abfrage? Es speilt doch keine Rolle, wenn eine weisse Zelle nochmals weiss gestrichen wird.
Noch eine Frage: Ist der MOUSEOVER Event wirklich der richtige Event? Würde ONCLICK nicht besser passen?

Du hast übrigens in beiden if-Abfragen «x.bgColor=="#ffffff"», was sicher rote Zellen ausschliesst.


als Antwort auf: [#69831]

Tabellenfarbe mit Javascript ändern

Huflatisch
Beiträge gesamt: 2

12. Feb 2004, 16:20
Beitrag # 5 von 7
Beitrag ID: #70201
Bewertung:
(7302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey

Ich will das auf einen Jahreskalender anwenden. Deshalb ein Mousover, damit ich eine über die Zellen drüberfahren kann und gleich alles markiert wird ohne das ich mich totklicke :-) (deshalb auch die aktivierung über das drücken der Tasten)

Die if Abfage habe ich gemacht weil ja die Zelle rot oder weis sein kann. (Die eine bgcolor im 2ten if müsste ff0000 sein, aber dann funktioniert das zurücksetzen auf weis nicht mehr).
Mein Problem ist das wenn ich die Zellenfarbe per Mouseover geändert habe (von weis auf rot). Mir als Rückgabewert (x.bgColor) immer noch das weis zurückgegeben wird und nicht die aktuelle farbe. Deshalb kann ich das nicht per php auswerten.
Und das sich mein script nicht auf die aktuelle Zelle bezieht sondern sich auf die, welche im ID genannt ist (im oberen Beispiel auf Zelle 1 mit der ID 0). Das heist das sich immer die Farbe Zelle mit der ID 0 ändert, egal über welche Zelle ich ein mouseover mache.

By Huflatisch

Beispiel: http://www.karl.gustav.8m.net/test2.htm





als Antwort auf: [#69831]
(Dieser Beitrag wurde von Huflatisch am 12. Feb 2004, 16:32 geändert)

Tabellenfarbe mit Javascript ändern

Markus Walker
Beiträge gesamt: 494

14. Feb 2004, 12:56
Beitrag # 6 von 7
Beitrag ID: #70462
Bewertung:
(7302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn Du doch id vergibts, wieso benutzt Du dann nich die Methode getElementById()? Im Weiteren sollte eine id einmalig sein und nicht in den folgenden Reihen wiederholt werden.

Betreffend meiner Bemerkung oben und dem ONCLICK, schau Dir mal die erste Zelle an. So kann man auch eine einzelne Zelle ohne komische Bewegungen aktivieren.

HTH und viel Spass!

So funktionierts:
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
<!--
document.write(document.bgColor);

function test(x) {
if (x.bgColor=="#ffffff" && window.event.shiftKey)
{
document.getElementById(x.id).style.backgroundColor='#ff0000'
}
if (x.bgColor=="#ffffff" && window.event.ctrlKey)
{
document.getElementById(x.id).style.backgroundColor='#ffffff'
//alert(x.bgColor + " rot");
}
}
//-->
</script>

</head>
<body>
<table width="531" border="1">
<tr>
<td id="t00" bgColor="ffffff" onMouseOver=test(this) ONCLICK=test(this)>&nbsp;</td>
<td id="t01" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t02" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t03" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t04" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t05" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t06" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t07" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
</tr>
<tr>
<td id="t10" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t11" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t12" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t13" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t14" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t15" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t16" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t17" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
</tr>
<tr>
<td id="t20" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t21" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t22" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t23" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t24" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t25" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t26" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
<td id="t27" bgColor="ffffff" onMouseOver=test(this)>&nbsp;</td>
</tr>
</table>
</body>
</html>


als Antwort auf: [#69831]

Tabellenfarbe mit Javascript ändern

Huflatisch
Beiträge gesamt: 2

15. Feb 2004, 14:44
Beitrag # 7 von 7
Beitrag ID: #70552
Bewertung:
(7302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey

Tausend Dank :-)

getElementById(x.id) das in den Klammern war mein fehler
Vielleich mach ichs auch noch mit dem onclick

By Huflatisch


als Antwort auf: [#69831]
X