Newsgroup: it.comp.lang.javascript
Titolo: rollover - dubbio di un principiante

Ciao a tutti... in questi giorni sto studiandomi il manuale di Javascript...
Ho appena affrontato il discorso del rollover di 1 o 2 immagini in
contemporanea... Il mio dubbio è il seguente: ma se avessi n immagini da
fare il rollover in contemporanea (non so quanto sia applicabile nella
realtà questa ipotesi!!!), è possibile???
Io ho pensato all'utilizzo di un array...
Mi spiego meglio...
Il manuale dice che, nel caso di 2 immagini, il file avrebbe una struttura
del tipo:
<HTML>
<HEAD>
 <SCRIPT language="Javascript">
    <!--
        if (document.images)
          {
            // precaricamento delle immagini per effettuare il rollover
            // i file avranno nome *_init.* per quelli che verranno
visualizzati di default
            // e *_new.* per quelli che vengono visualizzati a seguito
dell'evento onMouseOver( )
          }
        function change_it (name1, name2)
          {
            if (document.images)
              {
                document.images[name1].src=eval (name1 + "_new.src");
                document.images[name2].src=eval (name2 + "_new.src");
              }
          }
        function change_new (name1, name2)
          {
            if (document.images)
              {
                document.images[name1].src=eval (name1 + "_init.src");
                document.images[name2].src=eval (name2 + "_init.src");
              }
          }
    //-->
  </SCRIPT>
</HEAD>
<BODY>
...
<A HREF="pagina.html" onMouseOver="change_it('pic1','pic2')"
onMouseOut="change_new('pic1','pic2')">
  <IMG SRC="image1.gif" NAME="pic1" ID="pic1" BORDER="0">
</A>
<P>
   <IMG SRC="image2.gif" NAME="pic2" ID="pic2">
</P>
</BODY>
</HTML>
La mia modifica sarebbe all'interno delle due function (change_it ( ) e
change_new ( )): siccome sono uguali, cambia solo la stringa che si aggiunge
in fondo al nome, e nel caso di n parametri passati alla funzione, con n
valore fisso (ovviamente).
        function change_it (name1, name2, ..., nameN)
          {
            var parametri = new Array();
            if (document.images)
              {
                //Inserisco i parametri nell'array parametri[]
                for (i=0;i<=N;i++)    //dove al posto di N ci sarà il numero
dei parametri accettati in ingresso
                  {
                    var par = "name" + i;    //costruisco il nome del
parametro da inserire nell'array
                    parametri.push (par);    //accodo il parametro
nell'array
                  }
                // creo i file da visualizzare con l'evento onMouseOver ( )
                for (i=0;i<=N;i++)
                 {
                   document.images[parametri[i]].src=eval (parametri[i] +
"_new.src");
                 } //end_for
            } //end_if
        } //end_function
Funziona come ragionamento????? o c'è qualche modo più veloce e
sintetico????
grazie dell'aiuto....
Pompeo

 dei parametri accettati in ingresso
for (var i=0;i<arguments.length;i++)
	document.images[arguments[i]].src=window[arguments[i]+"_new"].src;
-- 
ZER0 
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 however improbable, must be the truth." (S.H.)
grazie per l'aiuto e scusate se rompo ma come al solito s'impara molto di
più a discutere con persone che ne sanno che non studiare sui libri....
ovviamente i libri servono x avere delle basi e x comprendere di cosa
parlano gli esperti!!! ;-)))
Pompeo

 parlano gli esperti!!! ;-)))
Lascia perdere i libri e leggiti la reference del linguaggio, è più
istruttiva.
-- 
~ Solo la stupidità umana può dare l'idea dell'infinito.