hilfdirselbst.ch
Facebook Twitter gamper-media
"Funktioniert nicht" ist keine hinreichende Fehlerbeschreibung.
Anonym
Beiträge: 22827
11. Feb 2004, 06:56
Beitrag #1 von 7
Bewertung:
(3929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenfarbe mit Javascript ändern


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 Top
 
X
Markus Walker  M 
Beiträge: 494
11. Feb 2004, 21:06
Beitrag #2 von 7
Beitrag ID: #70027
Bewertung:
(3929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenfarbe mit Javascript ändern


Studier mal das Beispiel hier:
http://selfhtml.teamone.de/.../htmlelemente.htm#td
als Antwort auf: [#69831] Top
 
Anonym
Beiträge: 22827
11. Feb 2004, 23:56
Beitrag #3 von 7
Beitrag ID: #70044
Bewertung:
(3929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenfarbe mit Javascript ändern


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] Top
 
Markus Walker  M 
Beiträge: 494
12. Feb 2004, 07:50
Beitrag #4 von 7
Beitrag ID: #70060
Bewertung:
(3929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenfarbe mit Javascript ändern


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] Top
 
Huflatisch
Beiträge: 2
12. Feb 2004, 16:20
Beitrag #5 von 7
Beitrag ID: #70201
Bewertung:
(3929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenfarbe mit Javascript ändern


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)
Top
 
Markus Walker  M 
Beiträge: 494
14. Feb 2004, 12:56
Beitrag #6 von 7
Beitrag ID: #70462
Bewertung:
(3929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenfarbe mit Javascript ändern


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] Top
 
Huflatisch
Beiträge: 2
15. Feb 2004, 14:44
Beitrag #7 von 7
Beitrag ID: #70552
Bewertung:
(3929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenfarbe mit Javascript ändern


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] Top
 
X