• User Attivo

    stesso valore di variabile per due script

    Secondo voi è possibile avere la stessa variabile in due script?
    Mi spiego meglio. Io ho creato uno script in modo tale che quando il mouse passa su un'immagine, la variabile *ciao * acquisisce valore 1.
    Ora io voglio fare un'altro script in un'altra parte della pagina, dove mi serve che la variabile ciao tenga li stessi valori che ha nel primo script: ovvero se il mouse va sull'immagine deve avere valore 1, mentre se ne è fuori deve avere un'altro valore.
    è possibile?


  • Super User

    Puoi farlo dichiarando delle variabili globali.
    Cioè la dichiarazione deve essere fatta al di fuori delle funzioni, di solito si fa nell'head.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title></title>
    <script language="javascript" type="text/javascript"><!--
    var Variabile_globale;
    funzione1()
    {
    var variabile_locale;
    //istruzioni
    }
    funzione2()
    {
    var variabile_locale;
    //istruzioni
    }
    --></script>
    </head>
    <body>
    </body>
    </html>

    In questo esempio Variabile_globale può essere usata in tutte le funzioni di tutta la pagina, invece variabile_locale è specifica delle singole funzioni e pur avendo lo stesso nome in entrambe le funzioni non è la stessa cosa.

    :ciauz:


  • User Attivo

    Gazie mille, ma purtroppo non sono riuscito a fare quello che mi interessava. :arrabbiato: Ho dei problemi sugli eventi e su come attivare le funzioni.... :doppio: forse è meglio cercare delle guide seire... uff.
    ciaO


  • User Attivo

    Ma sei sicuro che funzioni???
    Io ho scritto sto codice, ma non funge!!!

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="javascript">
    var cia;
    
    function assegna&#40;&#41;
    &#123;cia=1&#125;
    function scrivi&#40;&#41;
    &#123;if &#40;cia==1&#41; &#123;document.write&#40;"cia"&#41;&#125;&#125;
    
    </script>
    <title>Documento senza titolo</title>
    </head>
    <body>
    <form>
    <input type="button" value="Hit me" onClick="assegna&#40;&#41;">
    </form>
    
    
    altra linea <script language="javascript">scrivi&#40;&#41;</script>
    </p>
    </body>
    </html>
    

    Non mi sembra errato!! 😢 😢


  • Super User

    E' normale che non funzioni, tu devi chiamare la funzione assegna() prima della funzione scrivi()... Invece così fai il contrario e il confronto cia==1 risulta falso.

    Ti faccio un esempio funzionante:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="javascript">
    var cia;
    
    function assegna&#40;&#41;
    &#123;cia=1&#125;
    function scrivi&#40;&#41;
    &#123;if &#40;cia==1&#41; &#123;document.write&#40;"cia"&#41;&#125;&#125;
    
    </script>
    <title>Documento senza titolo</title>
    </head>
    <body onLoad="assegna&#40;&#41;">
    <form>
    <input type="button" value="Hit me" onClick="scrivi&#40;&#41;">
    </form>
    
    
    altra linea <script language="javascript">scrivi&#40;&#41;</script>
    </p>
    </body>
    </html>
    

    Ciao :ciauz:


  • User Attivo

    Si, ma così non funziona come voglio io...
    Sto cercando un modo per far attivare la funzione scrivi() quando voglio io e non quando carica la pagna... Ma non mi viene in mente niente (tutte gli eventi che conosco non vanno bene)...
    BAH!! 😞


  • Super User

    Io ho fatto solo un esempio per farti vedere che le variabili globali funzionano...

    Fidati: gli eventi, le variabili globali, e le funzioni che puoi inventarti sono più che sufficenti per fare quello che vuoi....

    Il vero problema sono gli algoritmi...

    Devi trovare un espediente che possa risolvere il tuo problema in base a quelle che sono le possibilità date dal linguaggio... ma questo non si può imporvvisare lo devi fare imparando la base della programmazione. Ci vuole studio, impegno e fantasia 😉

    Ci sono molte soluzioni... Non so se può esserti utile però ti segnalo che ad esempio puoi anche richimare la funzione scrivi() all'interno della funzione assegna()...

    L'importante è che scrivi() avvenga dopo assegna().

    :ciauz:


  • User Attivo

    Il punto è che non conosco bene gli eventi e le azioni. Io le ho lette le guide online, ma a parer mio sono inutili. Mi hanno solo insegnato i comandi tipo gli if, o il while (che, tra l'altro sapevo già usare per via della programmazione...).
    Ma quasi nessuno ti diceva come fare per far comparire una scritta, o cosa mettere per far comparire un'immagine.... 😢 😢
    E così, per imparare a scriptare decentemente, sto aspettando la venuta dei libri... :quote:
    Grazie comunque!!*