Newsgroup: it.comp.lang.javascript
Titolo: Associazione dinamica della classe di stile

Ciao.
Utilizzo questa funzione
------------------------------------------
function initInputButtonStyle()
{
    var inputbuttons = document.getElementsByTagName("input");
    for (var i = 0; i < inputbuttons.length; i++){
        if (inputbuttons[i].type == "submit") {
            inputbuttons[i].style.className = "test";
        }
    }
}
------------------------------------------
Per cambiare classe a tutti gli input di tipo submit.
La classe perň non viene associata, o almeno non sě
ottengono cambiamenti.
Cambiando la riga
            inputbuttons[i].style.className = "test";
con
            inputbuttons[i].value = inputbuttons[i].id;
perň l'istruzione viene eseguita, quindi č un problema
legato agli stili.
La classe test č dichiarata all'interno del foglio di stile globale:
.test
{
    .....
}
Dove č il problema?
Se riuscissi a fare tutto dal foglio di stile
sarebbe la cosa migliore (associare la classe solo ai tag
input di tipo submit o button).
Altra cosa:
la seconda istruzione, quella che funziona, viene eseguita
ma si vede il cambio di testo.
E' possibile evitare questo effetto?
Non vorrei si vedesse anche con l'associazione della
classe di stile.
Grazie,
Matteo Migliore.
MSN - 
dynamic...@email.it
Help in chat - soluzione su NG

             inputbuttons[i].style.className = "test";
Togli quello style...inputbuttons[i].className="test";
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 ------------------------------------------
cmq non è il massimo come tecnica.
se la classe contiene un background-image, spesso su ie si verifica uno 
sfarfallio bianco.
occhio agli effetti collaterali quindi non so se a voi i clienti fanno 
notare queste cose, a me si.

 sfarfallio bianco.
Quello che viene chiamato flickering. Ma non su tutti gli IE capita, anche
a parita' di versione.
Cmq e' un fenomeno che riguarda tutti gli elementi con immagine di
background, a prescindere dal cambio di classe: spesso anche se ci passi
sopra con il mouse, flickera.
-- 
ZER0://coder.gfxer.web-designer/
~ "Compiere l'impossibile e' impresa che risiede nel cuore degli uomini"
(Mariners and generals)
on air ~ "U2 - Another Time, Another Place"

 sopra con il mouse, flickera.
realizzando un menu in javascript a dire il vero cambiando la classe 
faceva il flickering, modificando proprietà per proprietà no. E' proprio 
una cosa casuale, non capita su tutti gli IE come dici tu e non sempre 
anche se le condizioni sono simili.

Grazie Cristiano.
Come dicevo però (e come ha suggerito Tobia)
c'è modo di evitare la visualizzazione dei pulsanti
con lo stile di default e poi il cambiamento con la classe
custom?
Non è possibile associare quella classe solo agli input
di tipo button direttamente nel CSS?
Matteo Migliore.

 di tipo button direttamente nel CSS?
no
con browser gecko input[type="button"]
ma con IE non va.
Non puoi mettere direttamente class="tuaclasse" nella pagina?
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 di tipo button direttamente nel CSS?
Nei browser seri, si (ovvero quelli che seguono gli standard del w3c):
input[type="submit"]{
	/* il tuo css */
}
va da se' che IE non segue gli standard del w3c fino in fondo.
-- 
ZER0://coder.gfxer.web-designer/
~ "Lo dice il buon senso, ma il buon senso non e' uno standard".
(Jeffrey Zeldman)
on air ~ "Maki Kimura - Beyond The Bounds"

 va da se' che IE non segue gli standard del w3c fino in fondo.
Fino in fondo...sarebbe già un passo avanti se si fermasse a metà!
Ci stavo pensando proprio oggi: con l'implementazione di [] e del > per i
child si può descrivere la gran parte della pagina con i css senza dover
ricorrere a dichiarazioni di classi, e il css risulterebbe molto più
leggibile.
[OT]
Ho scaricato da sourgeforge "IE7" che usa javascript per implementare
css2-css3 non funzionanti con IE. Non ho avuto tempo di provarlo per ora,
te o qualcun altro lo ha provato?
Se funziona stavo pensando di inserirlo nella intra così posso iniziare a
giocarci.
[/OT]


 te o qualcun altro lo ha provato?
No, ma ad occhio e croce usera' i behavior e fara' il parsering dei CSS da
codice script, il che significa che bene o male si avra' una sensibile
diminuzione delle prestazioni (nel migliore dei casi).
-- 
ZER0://coder.gfxer.web-designer/
~ "Rispetto e' Memoria, non Oblio."


 diminuzione delle prestazioni (nel migliore dei casi).
Anch'io mi sono chiesto come faccia; ho dato un veloce occhio allo script
ma quello principale (che poi richiama gli altri) č criptato con la tipica
logica "assegna a tutte le variabili e funzioni dei nomi assurdi cosě per
capirci qualcosa ci vuole uno studio e non si capisce al volo cosa stia
combinando".
Certo che se hai ragione te e si passa tutto il document-tree, magari N
volte, diventerebbe improponibile.


 Anch'io mi sono chiesto come faccia; 
Non c'e' da chiedersi come fa, l'unico modo possibile in cui IE puo' farlo
e' tramite i behavior, non se ne scappa. E' l'unica tecnologia proprietaria
M$ che ti permette un lavoro del genere.
E deve anche sicuramente interpretare internamente il codice CSS per
renderlo digeribile a IE, quindi fara' almeno un parsering per CSS.
Somma le due cose, e capirai che le prestazioni caleranno sensibilmente (io
mollai i behavior custom proprio per questa ragione).
-- 
ZER0://coder.gfxer.web-designer/
~ Tutti quelli che credono nella psicocinesi, per favore alzino la mia
mano.


 diminuzione delle prestazioni (nel migliore dei casi).
non solo diminuzione delle prestazioni, in casi sfigati dava origine a 
inspiegabili js error, trovai pure documentazione in rete su quegli 
errori. Magari adesso han sistemato.