Newsgroup: it.comp.lang.javascript
Titolo: [OT]Unico CSS per tabella con colore alternato

Devo generare una pagina con piu' tabelle.
In una sola tra queste tabelle (la piu' lunga)  evidenzio l'intera riga al
passare del mouse.
Vorrei pero' potere definire in uno stile gli eventi OnMouseOver/OnMouseOut
senza dover scrivere in ogni cella
la seguente istruzione che a mio avviso risulta essere  molto lunga:
<TD OnMouseOver="this.style.backgroundColor='blue'"
OnMouseOut=="this.style.backgroundColor='red'"> .
ma definendo uno stile che includa anche gli eventi esempio
<TD class='alternato'>
Ma se e' possibile come lo scrivo lo stile 'alternato'?
Ho provato a generalizzare lo stile tipo
td:OnMouseOver{backgroundColor:'blue'; }
td:OnMouseOut{backgroundColor:'red'; }
ma come prevedibile tale effetto si applica a tutte le tabelle della pagina
cosa che io non voglio.
Qualcuno ha in mente se e come si puo' procedere.
Grazie

 Qualcuno ha in mente se e come si puo' procedere.
Il metodo standard č:
td {background: red}
td:hover {background: blue}
ma funziona solo su Mozilla/Netscape6+
MaRoK

Per IE (mai testato su altri browser) io modifico il css:
a) assegno id allo stylesheet (es. <style id='qta_dettagli_minus'>)
b) cerco l'item corretto; per questo occorre usare la posizione ordinale
(usando il suo nome IE restituisce sempre il primo valore trovato); per
trovarlo uso selectorText: prova p.e. con
 for(var x=0;x<document.styleSheets['style_qta_dettagli'].rules.length;x++)
alert(document.styleSheets['style_qta_dettagli'].rules.item(x).selectorText)
;
c) una volta identificato lo modifico, es. per nascondere:
document.styleSheets['style_qta_dettagli'].rules.item(x).style.display=none;

 MaRoK
Mi sembra che funziona anche su IE (non sono sicuro).Comunque vada avrei
l'evento su tutte le tabelle presenti mentre io voglio evidenziare al
passaggio del mouse solamente la riga di una specifica tabella.  (quella che
ha l'evento onmouse over per poi ritornare al colore "normale" all'uscita
del mouse dalla riga).
otherwise

 ha scritto nel messaggio
news:ane7sm$cd3kt$1...@ID-147253.news.dfncis.de...

Scusa ma non ho capito:
cerco una maniera "leggera" per diminuire le dimensioni del codice (la
tabella in questione ha mediamente sempre più di 100/150 righe).
Attualmente scrivero più di 100/150 volte :
<TD OnMouseOver="this.style.backgroundColor='blue'"
OnMouseOut=="this.style.backgroundColor='red'">
mi sembra pesante in termini di traffico generato per ottenere il solo
effetto di vedere la riga accendersi se il mouse è posizionato sopra la riga
per poi spegnersi al suo allontanamento.
Da tuo esempio però non vedo come intercettare l'evento del mouse sulla
singola riga?
E in seconda battuta un ciclo for(;;) non potrebbe risultare troppo
lento/pesante in presenza di una pagina pienotta?
Ciao
otherwise

 passaggio del mouse solamente la riga di una specifica tabella.
No, puoi specificare aggiungendo:
td#menu {background: red}
td#menu:hover {background: blue}
e poi:
<td id="menu" ... ecc.
Ma solo sui suddetti.
Aspetto anche io la soluzione, interessa anche a me.
Se ti capita fammi sapere.
Ciao
Nixs

quello che ho indicato è per avere una singola classe e modificarla; devi
comunque eseguire lo script per ogni td
Non mi viene in mente nulla per evitare di scrivere la procedura evento in
ogni td

 ogni td
I behavior. In NN6 usi le classi "hover", in IE utilizzi i behavior.
Solo che ve lo sconsiglio caldamente.
--------------------------------
Inviato via 
http://usenet.libero.it