Newsgroup: it.comp.lang.javascript
Titolo: Cambiare colore riga al passaggio mouse

Salve a tutti.
Mi rendo conto che sto per chiedere una FAQ ma, nonostante le risposte
già trovate, non sono riuscito a fare ciò che volevo. Non conosco JS
quindi mi serviva uno script già pronto per fare quello che mi serve,
cioè cambiare il colore di sfondo di una riga di una tabella (generata
in PHP) quando il mouse ci passa sopra, così da avere una migliore
leggibilità.
Tra i vari codici che ho trovato quello più elegante (e forse anche
quello più immediatamente comprensibile da me che non conosco il
linguaggio) è
<script language="JavaScript" type="text/javascript">
<!--
	var righe = document.getElementsByTagName('tr');
	for (var i = 0; i < righe.length; i++) {
		righe[i].onmouseover = function() {
			this.className += ' rigasel';
			}
		righe[i].onmouseout = function() {
			this.className = this.className.replace('rigasel', '');
			}
	}
//-->
</script>
Il codice PHP usato è
<tr class='$riga' >
	<td class='colonna1' ><a href=\"view.php?user=".$user."&id=".
$query["A"]."\" >".$query["B"]."</a></td>
	<td class='colonna2' >".$query["C"]." (".$query["D"].")</td>
	<td class='colonna3' >".$query["E"]."</td>
	<td class='colonna4' >".$F."</td>
	</tr>
dove $riga assume il valore rigapari o rigadispari a seconda dei casi.
Il codice CSS è
table {
	width: 100%;
	margin: 10px 0 0 0;
	border-collapse: collapse;
	}
.rigapari {
	background-color: #F4F4F4;
	}
.rigadispari {
	background-color: #B2B2B2;
	}
.rigasel {
	background-color: #FFCCFF;
	}
Grazie mille a chi mi aiuta.
Ciao,
BadAnimal

 			}
non ci sono errori, mi sembra (la console javascript di firefox cosa dice)?
Il problema, a naso, è che settando il colore a una tr NON lo setti alle
corrispondenti td perché non si propaga.
mai provato, ma magari con !important si risolve:
 
http://www.w3.org/TR/REC-CSS2/cascade.html#important-rules
dritta (partendo dal codice che hai già fatto, io recupererei un
riferimento al tbody e ciclerei le tr con la collection rows): una volta
recuperato un riferimento alla tr devi settare l'onmouseover/out alle sue
celle e non alla tr.
Puoi recuperare la collection delle td con 
 righe[i].cells;
Lo cicli come hai fatto con le righe e per ogni cella setti o rimuovi la
classe.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 classe.
Premesso che non so/non ricordo come funziona la proprietà background-color
sui tr, credo possa andar bene anche impostare/rimuovere la classe ai tr
(iterando, così, su un numero inferiore di elementi) a patto di usare una
regola css tipo:
tr.rigasel td {
  background-color:#abc;
  /* ... */
}
-- 
Nando [?]
Apostolo della Prova

 leggibilità.
E mi sembra che quello che hai trovato, e nel tuo post scritto, faccia
esattamente ciò che chiedi. Quindi, qual'è la domanda/il problema?
-- 
~ Se il destino è contro di noi, peggio per lui!

 classe.
Avevo già provato prima di scrivere il post e non era cambiato nulla.
Grazie mille per l'aiuto.
Ciao,
BadAnimal

 Posso provare, ma non mi sembra sia questa la via.
prova perché io non vedo errori...se hai una pagina in linea con questo
problema posta il link, perché "a vista" (senza testarlo) io non vedo
problemi.
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.

 prova perché io non vedo errori...se hai una pagina in linea con questo
Risolto. Grazie mille a tutti quanti.
Ciao,
BadAnimal