Newsgroup: it.comp.lang.javascript
Titolo: Qualcuno mi può aiutare con questo mio problema ... ?

Io devo gestire un menů. 
Il menů in questione non č altro che un insieme di link gestiti come
colonne di una tabella, cioč per ogni colonna della tabella c'č un link. 
A me servirebbe che: 
- quando il cursore č sopra al link il colore del link stesso cambi colore
(per esempio da blu a bianco); 
- quando il cursore "esce" dal link, il colore del link ritorni quello
originario (per esempio da bianco a blu); 
- quando viene cliccato il link voglio che tale link resti evidenziato sia
che si "entri" o che si "esca" dal link. Il link deve rimanere "bloccato"
sul colore bianco almeno finchč non viene cliccato un altro link e quindi
si ripette la storia. 
Ciao e Grazie. 
Grejo. 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Devi giocarci un po', qualche dritta:
onmouseover='this.style.color="red"' per far diventare un tag rosso quando
ci va sopra il mouse
onmouseout: come sopra, cambi colore quando il mouse esce dal tag
onclick: come sopra, cambi colore quando viene effettuato un click (che
immagino apre una popup, oppure in un altro frame, altrimenti cambiargli
colore non ha senso visto che stai cambiando pagina)
Mescolando i 3 eventi sopra puoi ottenere ciň che chiedi, prova un po'; se
non riesci posta il codice che hai fatto cosě possiamo aiutarti

Cristiano Larghi ha scritto:


Intanto ti ringrazio per l'aiuto che mi hai dato fino ad adesso ...
Ritornando al discorso dello script che mi serve, devo dire che:
a me serve proprio che quando si clicca sul link rimanga "bloccato" finchč
non si clicca su un altro link. Ciň deriva dal fatto che ho una testata
superiore comune per tutte le pagine (nel senso che rimane sempre fissa e
non viene caricata ad ogni caricamento delle pagine collegate al menů) e
voglio che quando clicco su una voce e quindi seleziono una pagina sia
evidenziato la zona del menů che ho scelto.


Gioca non i 3 eventi e otterrai quello che chiedi.
Il problema č capire quando č stato premuto e, di conseguenza, NON
effettuare il cambio di colore onmouseout.
Se setti, per esempio: onmouseover white, onmouseout red, onclick silver,
potresti fare:
onmouseover='if(this.style.color!='silver') this.style.color="white"'
onClick='this.style.color="silver"'
onmouseout='if(this.style.color!='silver') this.style.color="red"'
Resta il problema di togliere il silver al precedente link, per fare questo
potresti salvarti l'oggetto in una variabile globale, del tipo:
var obj_click=null;
onClick aggiungi anche obj_click=this e la verifica del valore; diventa
quindi:
onClick='if(obj_click!=null)
obj_click.style.color="red";this.style.color="silver";obj_click=this'
Cosě, a grandi linee e scrivendolo di corsa, dovrebbe funzionare.
Quanto sopra č uno spunto, da qua parti per ottimizzare il tutto.

Cristiano Larghi ha scritto:





Io ho provato ad usare questo codice, non offenderti se č un pň diverso da
quello che mi hi dato tu.
Il codice č:
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Pagina di prova per il menů testuale</title>
<script>
var obj_click=null;
function Gestione_Testuale(modalita,rifferimento){
    if(modalita==1){
        if(rifferimento.style.color!="silver"){
            rifferimento.style.color="white";
        }// if
    }// if
    if(modalita==2){
        if(obj_click!=null){
            obj_click.style.color="red";
            this.style.color="silver";
            obj_click="this";
        }// if
    }// if
    if(modalita==3){
        if(this.style.color!="silver"){
            this.style.color="red";
        }// if 
    }// if
}// Gestione_Testuale
</script>
</head>
<body>
<div align="center">
  <center>
  <table border="1">
    <tr>
      <td width="33%" onmouseover='Gestione_Testuale(1,this)'
onClick='Gestione_Testuale(2,this)'
onmouseout='Gestione_Testuale(3,this)'>* prova 1 *</td>
      <td width="34%" onmouseover='Gestione_Testuale(1,this)'
onClick='Gestione_Testuale(2,this)'
onmouseout='Gestione_Testuale(3,this)'>* prova 2 *</td>
      <td width="33%" onmouseover='Gestione_Testuale(1,this)'
onClick='Gestione_Testuale(2,this)'
onmouseout='Gestione_Testuale(3,this)'>* prova 3 *</td>
    </tr>
  </table>
  </center>
</div>
</body>
</html>
Mi restituisce un'errore: mi dice che this.style.color č null oppure non č
un oggetto.
Cosa ne pensi?


Nella function non puoi usare this, devi usare rifferimento (con 2 effe, hai
chiamato cosě il parametro)

 chiamato cosě il parametro)
Invece di mettere fifferimento con due effe ho messo this_p
Questo codice mi fa il cambio di colore quando il cursore entra ed esce
dalla scritta, ma non mi gestisce il fatto che quando clicco mi resti
bloccato.
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Pagina di prova per il menů testuale</title>
<script>
var obj_click=null;
function Gestione_Testuale(modalita,this_p){
    if(modalita==1){
        if(this_p.style.color!="silver"){
            this_p.style.color="white";
        }// if
    }// if
    if(modalita==2){
        if(obj_click!=null){
            obj_click.style.color="red";
            this_p.style.color="silver";
            obj_click="this";
        }// if
    }// if
    if(modalita==3){
        if(this_p.style.color!="silver"){
            this_p.style.color="red";

-- 


togli le virgolette: obj_click=this;
Inoltre stai eseguendo tutta la parte onclick SOLO SE obj_click!=null...ma
all'inizio è nullo, e quindi non viene mai eseguita => if(obj_click!=null)
obj_click.style.color="red"; //togli le graffe perché la parte restante deve
eseguirla sempre

Cristiano Larghi ha scritto:

Lo script non mi funziona, una volta che mi ha "bloccato" un link mi dà
errore se provo a bloccare altri link.
Cmq ti ringrazio per l'aiuto. Da adesso in poi credo di potercela fare da
solo.
A buon rendere. Ivan.
