Autor |
Nachricht |
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Mo 10.12.2012 13:25
Titel Farbe einer Zelle bei onclick auslesen |
|
|
Für einen Farbwähler habe ich eine Tabelle mit farbigen Zellen gebaut. Im onclick-Event einer jeden Zelle steht
onclick=creturn(this);
Code: | function creturn(c)
{
ret=c.style.backgroundColor;
alert(ret);
}
|
Während die Funktion z.B. (testweise) mit "ret=c.style.width;" den korrekten Wert ('10px') zurückgibt, erhalte ich für backgroundColor immer nur "undefinied". Ich hätte aber gerne die Farbnotierung in Hex-Schreibweise (z.B. '#ff0000') ... Tips? Danke.
Zuletzt bearbeitet von qualidat am Mo 10.12.2012 13:29, insgesamt 3-mal bearbeitet
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
|
|
|
|
Anzeige
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Mo 10.12.2012 13:37
Titel Re: Farbe einer Zelle bei onclick auslesen |
|
|
qualidat hat geschrieben: | Im onclick-Event einer jeden Zelle steht
onclick=creturn(this); | Wenn das stimmt, solltest du das "onclick=" da wegmachen ^^
qualidat hat geschrieben: | Ich hätte aber gerne die Farbnotierung in Hex-Schreibweise (z.B. '#ff0000') ... Tips? Danke. |
In welcher "Schreibweise" das ausgegeben wird, bestimmt der Browser.
Soweit ich weiß, gibt der Opera in manchen Versionen zB grundsätzlich rgba(r,g,b,a) aus - auch wenns als #rgba angegeben ist. Das müsstest also ggf. nochmal konvertieren.
|
|
|
|
|
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Mo 10.12.2012 13:49
Titel
|
|
|
Zitat: | https://www.google.de/?q=javascript+get+style+property |
Danke, aber ich würde es auch gerne verstehen. Und die gefundenen Varianten erklären mir nicht, wieso es mit "width" funktionert, jedoch nicht mit "backgroundColor" ... ?
|
|
|
|
|
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Mo 10.12.2012 13:57
Titel
|
|
|
Zitat: | Wenn das stimmt, solltest du das "onclick=" da wegmachen ^^ |
Ne, ist schon ok, ist hier ungeschickt ausgedrückt. Wie bereits geschrieben ... mit der genannten Methode komme ich problemlos an Eigenschften wie "width" oder "height", aber eben nicht an "backgroundColor"
Auch eine Übergabe von "this.backgroundColor" anstelle des gesamten Cell-Objektes änder Nichts ... immer nur "undefinied".
Da ich den Farbwähler sowieso in einer Schleife mit Werten fülle, kann ich den Farbcode auch zusätzlich noch als ID verwenden und so herausbekommen, welche Zelle geklickt wurde. Aber elegant ist das nicht ...
Zuletzt bearbeitet von qualidat am Mo 10.12.2012 14:03, insgesamt 2-mal bearbeitet
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 10.12.2012 14:04
Titel
|
|
|
qualidat hat geschrieben: | Danke, aber ich würde es auch gerne verstehen. Und die gefundenen Varianten erklären mir nicht, wieso es mit "width" funktionert, jedoch nicht mit "backgroundColor" ... ? |
Höchstwahrscheinlich weil du die width Eigenschaft per Javascript setzt oder als inline Style.
|
|
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Mo 10.12.2012 14:14
Titel
|
|
|
qualidat hat geschrieben: | Ne, ist schon ok, ist hier ungeschickt ausgedrückt. Wie bereits geschrieben ... mit der genannten Methode komme ich problemlos an Eigenschften wie "width" oder "height", aber eben nicht an "backgroundColor" | Dann hat die Zelle vielleicht kein CSS-Background-Color?
Hast du das etwa mit bgcolor="iorgendwas" angegeben?
Wenn dus über <style/> angegeben hast, brauchst aber getComputedStyle.
Aber mal ganz davon ab.
Du hast jeder Tabellenzelle im HTML ein onclick="bla(this)" gegeben?
Das ist in etwa so schön, wie es ein bgcolor wäre
Gib solche js-listener dem Element am besten im JS.
|
|
|
|
|
ChrisKam
Dabei seit: 01.07.2009
Ort: Hattingen
Alter: 38
Geschlecht:
|
Verfasst Mo 10.12.2012 14:19
Titel
|
|
|
Ich würde das wegen der unterschiedlichen Implementierungen nicht mit Vanilla JS machen, sondern lieber mit jQuery.
Siehe http://api.jquery.com/css/
Damit lassen sich auch alle Felder erstellen und click listener unobstrusive sehr komfortabel dran basteln.
Und ich hoffe ebenfalls nicht, dass Du es so gemacht hast, wie fyll das in seinem Post skizziert
|
|
|
|
|
|
|
|
Ähnliche Themen |
onclick-Event bei onclick dieses Elements ändern
wie per JS timestamp auslesen und dann farbe ändern?
HTML Zelle teilen
Texteinzug um 10px in einer Zelle. Wie?
[CSS] zentrierte hor. Positionierung in Zelle...GROMPF!
Stylesheet für die Füllung einer Zelle
|
|