6 messaggi dal 21 luglio 2004
Ciao a tutti,
ho una pagina con una tabella con ID="MyTable".
Vorrei che quando l'utente fa click su una riga, lo sfondo di quest'ultima cambi colore affinche appaia evidenziata.
Ho pensato di realizzare una funzione javascript che riceve in input un parametro "inte_index identificante l'indice della riga selezionata (es. se l'utente clicca sulla prima riga il parametro varrà zero, se cliccherà sula seconda 1 e così via) e che viene richiamata in caso si verifichi l'evento OnClick su una riga.
A questo punto mi chiedo : quale sarà il contenuto di questa funzione? In altre parole, come faccio a dire: "imposta lo sfondo della riga di MyTable che si trova in posizione item_index a yellow"?
11.886 messaggi dal 09 febbraio 2002
Contributi
per motivi di praticità, non gli passare l'id (0,1,2...) ma la riga stessa.

cioè fai:

<tr onClick="Javascript:cambia(this)">

passando this come parametro, nella funzione hai la libertà di interagire direttamente con le proprietà della riga. La funzione sarà così:

function cambia(riga){
riga.style.background="#ff0000"
}

il risultato sarà che la riga cliccata diventerà rossa sullo sfondo.

A questo punto sorge un problema:
quando una riga viene cliccata, non solo bisogna cambiargli lo sfondo, ma si deve anche far tornare trasparente la riga precendetemente selezionata.
Per far questo appoggiati ad una variabile. La funzione poi cambia così:

giaselezionata = null
function cambia(riga){
if (giaselezionata != null){
giaselezionata.style.background = "transparent"
}
riga.style.background="#ff0000"
giaselezionata = riga
}

con la riga in grassetto valorizzi una "variabile promemoria" con il riferimento alla riga attualmente selezionata. Ti servirà in seguito per cancellare lo sfondo quando dovrai selezionare un'altra riga. ciao

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.