HighDots Forums  

resettare un stile

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss resettare un stile in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Roberto
 
Posts: n/a

Default resettare un stile - 05-10-2004 , 09:29 AM






Come posso fare?
Ho creato un menu dinamico al quale ho associato questo style
..Sottocategoria {
font-family: Verdana, Arial, Helvetica, sans-serif;
Font-size: 9px;
color: #713d04;
cursor: hand;
font-syle: normal;
}

Quando clicco una voce, con questa funzione cambio il colore della font
della relativa riga (e fin qui tutto ok!), ma vorrei anche resettare tutte
le altre righe al colore iniziale.
Le righe fanno parte di una tabella della quale non ne conosco la dimensione
in quanto generata dinamicamente.
Ho provato a dare un ID alla tabella, e quindi resettarla tutta al colore
iniziale, ma non funziona
Come posso fare?

function CambiaCol(id,col){
document.getElementbyId('Tabella').style.color='#7 13d04';
//la riga sopra non funziona, mentre con backgroundcolor lo sfondo cambia !
el.= document.getElementbyId(id);
el.style.color=col;
}

..



Reply With Quote
  #2  
Old   
PS
 
Posts: n/a

Default Re: resettare un stile - 05-10-2004 , 01:09 PM






Quote:
Come posso fare?
Ho creato un menu dinamico al quale ho associato questo style

.Sottocategoria {
font-family: Verdana, Arial, Helvetica, sans-serif;
Font-size: 9px;
color: #713d04;
cursor: hand;
font-syle: normal;
}

Quando clicco una voce, con questa funzione cambio il colore della
font
della relativa riga (e fin qui tutto ok!), ma vorrei anche resettare
tutte
le altre righe al colore iniziale.
Le righe fanno parte di una tabella della quale non ne conosco la
dimensione
in quanto generata dinamicamente.
Ho provato a dare un ID alla tabella, e quindi resettarla tutta al
colore
iniziale, ma non funziona
Come posso fare?

function CambiaCol(id,col){
document.getElementbyId('Tabella').style.color='#7 13d04';
Attento! getElementById

Quote:
//la riga sopra non funziona, mentre con backgroundcolor lo sfondo
cambia !
el.= document.getElementbyId(id);
Attento! Non mettere el.=.... il punto non ci vuole...

Quote:
el.style.color=col;
}
Effettivamente una cosa cosi' viene ignorata:
<td
onclick="document.getElementById('Tabella').style. color='#000';this.styl
e.color='#EEE'">ciao</td>

Guarda mi sa' che mi sfugge qualcosa, ora ho n mal di testa e non lo
vedo




Reply With Quote
  #3  
Old   
ZER0
 
Posts: n/a

Default Re: resettare un stile - 05-10-2004 , 01:16 PM



On Mon, 10 May 2004 19:09:12 +0200, PS wrote:

[cut]
Quote:
Attento! getElementById
(..)
Attento! Non mettere el.=.... il punto non ci vuole...
Attento, il quoting..

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

Tutti quelli che credono nella psicocinesi, per favore alzino la mia mano.


Reply With Quote
  #4  
Old   
PS
 
Posts: n/a

Default Re: resettare un stile - 05-10-2004 , 01:28 PM



Quote:
Attento, il quoting..
Perche'?!?




Reply With Quote
  #5  
Old   
Roberto
 
Posts: n/a

Default Re: resettare un stile - 05-10-2004 , 01:44 PM



Ho fatto un errore di battitura, scusate.
il punto non ci va
Queste due righe funzionano,
====================
el= document.getElementbyId(id);
el.style.color=col;
=================
ossia cambiano il colore (col) della riga passata con id
esempio CambiaCol('Row11','red')
Il problema è che se clicco un'altra riga ne ho due righe red, mentre voglio
far tornare la prima al colore iniziale dello stile, cosa che non riesco a
fare.



Reply With Quote
  #6  
Old   
PS
 
Posts: n/a

Default Re: resettare un stile - 05-10-2004 , 01:58 PM



Quote:
Queste due righe funzionano,
====================
el= document.getElementbyId(id);
el.style.color=col;
Mmm, non credo, hai rimesso di nuovo minuscolo by: getElementById
JS e' CaseSensitive e quindi non dovrebbe andare, poi magari con IE
funziona...

Quote:
Il problema è che se clicco un'altra riga ne ho due righe red, mentre
voglio
far tornare la prima al colore iniziale dello stile, cosa che non
riesco a
fare.
Eh, ho provato anch'io e non ci sono riuscito...
Credo che dovresti agire su tutti i td... Comunque vediamo se a qualcuno
viene in mente qualcosa...




Reply With Quote
  #7  
Old   
Agostino De Matteis
 
Posts: n/a

Default Re: resettare un stile - 05-10-2004 , 03:02 PM



On Mon, 10 May 2004 19:58:00 +0200, "PS" <ps@t.it.invalid> wrote:

Quote:
Queste due righe funzionano,
====================
el= document.getElementbyId(id);
el.style.color=col;
Il problema è che se clicco un'altra riga ne ho due righe red, mentre
voglio
far tornare la prima al colore iniziale dello stile, cosa che non
riesco a
fare.

Eh, ho provato anch'io e non ci sono riuscito...
Credo che dovresti agire su tutti i td... Comunque vediamo se a qualcuno
viene in mente qualcosa...
Forse qualcosa del tipo:

var lastel=null;
var oldcolor="";
[...]
if(lastle!=null){
lastel.style.color=oldcolor;
}
lastel=el;
oldcolor=el.style.color;
el.style.color=col;
[...]

'bye


Reply With Quote
  #8  
Old   
ZER0
 
Posts: n/a

Default Re: resettare un stile - 05-11-2004 , 02:39 AM



On Mon, 10 May 2004 17:44:00 GMT, Roberto wrote:

Consiglio:
Ma usare le pseudoclassi tipo hover? Anche se su IE devi per forza
utilizzare un tag A per fare questo.. ma risolveresti ogni tuo problema
senza una riga di JS:

<style type="text/css">
A.Sottocategoria {
font-family: Verdana, Arial, Helvetica, sans-serif;
Font-size: 9px;
color: #713d04;
cursor: hand;
font-syle: normal;
}
A.Sottocategoria:hover{color:red}
</style>

<a href="link.htm" class="Sottocategoria">click me</a>
<a href="link2.htm" class="Sottocategoria">click me</a>

Quote:
el= document.getElementbyId(id);
Come ti e' gia' stato detto, e' "getElementById".

Quote:
el.style.color=col;
=================

Il problema è che se clicco un'altra riga ne ho due righe red, mentre voglio
far tornare la prima al colore iniziale dello stile, cosa che non riesco a
fare.
Basta che tu imposti a blank lo style e lui ti recupera i valori originari
della classe:

var prev=null;
/* .. */

/* funzione di click */
function menuclick(id){
/* .. */
var el=document.getElementById(id);

/* se c'e' un elemento selezionato in precedenza, ripristino il color */
if (prev)
prev.style.color="";

/* imposto l'elemento */
prev=el;

/* imposto il colore */
el.style.color="red";
}

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

Le donne si dividono in 4 categorie: le suore (non la danno a nessuno);
le puttane (la danno a tutti); le stronze (la danno a tutti tranne che
a te); le rompiballe (la danno a te e solo a te).


Reply With Quote
  #9  
Old   
Roberto
 
Posts: n/a

Default Re: resettare un stile - 05-11-2004 , 11:57 AM



Grazie a tutti, la soluzione di ZERO con la var prev funziona perfettamente
(invertendo le ultime due righe)



"ZER0" <zer0.shock (AT) libero (DOT) it> ha scritto nel messaggio
news:kjvfwex31agh.dlg (AT) ID-171124 (DOT) news.individual.net...
Quote:
On Mon, 10 May 2004 17:44:00 GMT, Roberto wrote:

Consiglio:
Ma usare le pseudoclassi tipo hover? Anche se su IE devi per forza
utilizzare un tag A per fare questo.. ma risolveresti ogni tuo problema
senza una riga di JS:

style type="text/css"
A.Sottocategoria {
font-family: Verdana, Arial, Helvetica, sans-serif;
Font-size: 9px;
color: #713d04;
cursor: hand;
font-syle: normal;
}
A.Sottocategoria:hover{color:red}
/style

a href="link.htm" class="Sottocategoria">click me</a
a href="link2.htm" class="Sottocategoria">click me</a

el= document.getElementbyId(id);

Come ti e' gia' stato detto, e' "getElementById".

el.style.color=col;
=================

Il problema è che se clicco un'altra riga ne ho due righe red, mentre
voglio
far tornare la prima al colore iniziale dello stile, cosa che non riesco
a
fare.

Basta che tu imposti a blank lo style e lui ti recupera i valori originari
della classe:

var prev=null;
/* .. */

/* funzione di click */
function menuclick(id){
/* .. */
var el=document.getElementById(id);

/* se c'e' un elemento selezionato in precedenza, ripristino il color */
if (prev)
prev.style.color="";

/* imposto l'elemento */
prev=el;

/* imposto il colore */
el.style.color="red";
}

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

Le donne si dividono in 4 categorie: le suore (non la danno a nessuno);
le puttane (la danno a tutti); le stronze (la danno a tutti tranne che
a te); le rompiballe (la danno a te e solo a te).



Reply With Quote
  #10  
Old   
ZER0
 
Posts: n/a

Default Re: resettare un stile - 05-11-2004 , 11:59 AM



On Tue, 11 May 2004 15:57:10 GMT, Roberto wrote:

Quote:
Grazie a tutti, la soluzione di ZERO con la var prev funziona perfettamente
(invertendo le ultime due righe)
Quali, queste?

prev=el;
el.style.color="red";

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

"Nei film americani, qualsiasi problema che venga considerato
sufficientemente catastrofico, puo' essere risolto facendo esplodere uno
o piu' ordigni nucleari" (ZER0 & Cosimo)

Now playing: "in tutti i miei giorni"


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.