Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
problem backgroundColor [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
problem backgroundColor


 
petro_0
18-01-2010, 11:24 
 
Guten Morgen,

ich versuche in einer Tabelle oncklick die td durchzufärben.
Dabei soll aber die vorherig markierte Zeile wieder weiss werden.

Das markieren klappt, nur die vorherige Zeile blebit auch eingefärbt.
Wer kan nmir einen Tip geben?
Danke.

Übrigens ich verwende prototype!


function MarkRow(table, td) {
var elm = $(td).up('tr');
var tds = $(elm).getElementsByTagName('td');

for(var i = 0; i < tds.length; i++) {
if(typeof tds[i].style.backgroundColor) {

delete tds[i].style.backgroundColor;

}
tds[i].style.backgroundColor = "#3399CC";
tds[i].style.color = "#FFFFFF";
tds[i].style.fontWeight = "bold";
}
}



Danke.

 
streuner
18-01-2010, 11:36 
 
Hi!

z.B.

$i=1;
while($row = mysql_fetch_array($result))
{
$color = ($i % 2) ? "#000000" : "#FFFFFF";
echo "<tr><td bgcolor='$color'>$i. TEXT</td></tr>";
$i++;
}


mfg streuner

 
petro_0
18-01-2010, 11:43 
 
nein ich meine.ich will die zeile nur markieren die gerade angeklickt wird.

 
streuner
18-01-2010, 11:53 
 
Let me google that for you (http://lmgtfy.com/?q=css+zeile+anklicken+f%C3%A4rben)

usw.

http://www.tiptom.ch/homepage/faq.html?q=zellelink

mfg streuner

 
petro_0
18-01-2010, 13:55 
 
danke erstmal kollegen!

für alel die mal sowas brauchen.
habs so gelöst:


markedRows = {};

function MarkRow(td) {
var newColor = "#3399CC";
var oldCol = td.style.backgroundColor;
var tableId = $(td).up('table').id;
var elm = $(td).up('tr');
//Die markierte Zeile nochmal geklickt
if(td.style.backgroundColor == newColor) return;
//Die Tabelle wurde noch nie markiert, Array initialisieren
if(typeof markedRows[tableId] == 'undefined') {
markedRows[tableId] = {
oldColor: false,
rowId: false
}
} else { //Tabelle wurde schon geklickt, alte Spalte wiederherstellen
var tds = $(markedRows[tableId].rowId).getElementsByTagName('td');
for(var i = 0; i < tds.length; i++) {
tds[i].style.backgroundColor = markedRows[tableId].oldColor;
tds[i].style.color = "#000000";
tds[i].style.fontWeight = "normal";
}
}

var tds = $(elm).getElementsByTagName('td');
for(var i = 0; i < tds.length; i++) {
tds[i].style.backgroundColor = newColor;
tds[i].style.color = "#FFFFFF";
tds[i].style.fontWeight = "bold";
}
markedRows[tableId] = {
oldColor: oldCol,
rowId: elm.id
}
}

 
AmicaNoctis
18-01-2010, 15:08 
 
Hallo,

auch wenn es zu spät kommt, hast du schonmal von Expando-Properties gehört? In JavaScript kannst du jedem Objekt zusätzliche Eigenschaften verpassen und in deinem Falle könnte man dort die vorhergehende Farbe speichern, statt in einem zusätzlichen Objektliteral.

Gruß,

Amica

 
wahsaga
18-01-2010, 21:05 
 
Wozu überhaupt die „vorherige” Farbe speichern, wenn nur zwischen zweien gewechselt werden soll?

Ausserdem sollte man Darstellungsangaben auch aus dem JS heraushalten.
Die sinnvollere Vorgehensweise wäre also, per JavaScript Klassen zu setzen/entfernen - und die Elemente dann darüber im Stylesheet zu formatieren.
Dann braucht es auch nicht mehr drei Zuweisungen im JS für Hintergrundfarbe, Schriftfarbe und -gewicht.

 
petro_0
18-01-2010, 23:00 
 
Expando-Properties leider noch nie gehört...
aber schau ich mir an...
danke für denn tip...

ja warum die vorherige sprache speichern...damit keine zeile standardmässig falsch gefärbt wird.z.b. beim cyclen,,,,


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:46 Uhr.