Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JS Problemi con eventi onmouse

    Ciao a tutti e bun principio di feste...

    codice:
    <script language=javascript>
     FlgMenuAltoAperto=0;
     function MenuPrincipaleAct()
      {
       
       document.getElementById('MenuAlto').style.height=10;
       AllargaMenuPrincipale(100);
      }
      
     function AllargaMenuPrincipale(n)
      {
       if (MenuPrincipaleAct==1)
        return 0;
       Obj=document.getElementById('MenuAlto');
       obj=document.getElementById('InfoSx');
       N=Obj.style.height;
       T=obj.style.top;
       T= T.replace("px","");
       N = N.replace("px","");
       N=parseInt(N);
       T=parseInt(T);
       N=N+2;
       T+=2;
       Obj.style.height=N;
       obj.style.top=T;
       k="AllargaMenuPrincipale("+n+");";
       
       if (N<n)
        setTimeout(k,10); 
       else
        {
         MostraMenuAlto();
    	}
      }
      
     function MostraMenuAlto()
      {
       document.getElementById('MenuAlto1-1').style.display='';
       document.getElementById('MenuAlto1-2').style.display='';
      }
    
      
      
     function ClickMenuAlto(K)
      {
       
       K=K.replace("MenuAlto","");
       Pos=K.indexOf('-');
       Id=K.substr(0,Pos);
       Gr=K.substr(Pos+1);
       Id++;
       K='MenuAlto'+Id+'-'+Gr;
       document.getElementById(K).style.display='';
      }
      
    function MouseOver (id)
     {
    
      if (FlgMenuAltoAperto==1)
       return 0;
      
      obj=document.getElementById(id);
      BG=obj.style.backgroundColor;
      FG=obj.style.color;
      obj.style.backgroundColor=FG;
      obj.style.color=BG;
      FlgMenuAltoAperto=1;
     }
     
    function MouseOut (id)
     {
      if (FlgMenuAltoAperto==1)
       return 0;
      BG=obj.style.backgroundColor;
      FG=obj.style.color;
      obj.style.backgroundColor=FG;
      obj.style.color=BG;
     }   
    </script>
    
    
    <div id='InfoSx' style="position:absolute; left:0%; width:70px; top:55px; font-size:11px; color:#ffff00;">
    varie informazioni
    bla blabla
    </div><div id='MenuAlto' onmouseout='MouseOut("MenuAlto");' onclick='MenuPrincipaleAct()' onmouseover='MouseOver("MenuAlto");' style="position:absolute;font-size:10;color:#000066;border:solid 1px black;width:70;top:36;left:3;height:12;">Menu
    
    Opzione 1 blabla
    Sotto Opzione 1
    Opzione 2
    </div>
    Il menu' dovrebbe funzionare così:
    cliccando su "menù", si apre la tendina delle opzioni e si abbassa il box delle informazioni.
    Funziona tutto... non è vero!!!
    Infatti, quando clicco su una opzione viente attivato l'evento onclick sia sulla opzione sia sul box principale (quindi la funzione ClickMenuAlto()...
    ... l'alert inserito è per verifica.
    In teoria se la variabile FlgMenuAltoAperto serve per uscire dalla funzione che allarga il menù quando lo stesso è giè ingradito.
    In realtà viene richiamata ad ogni click sulle opzioni del menù la funzione MenuPrincipaleAct e quindi anche AllargaMenuPrincipale ma viene ignorato il return 0 sul controllo della variabile MenuPrincipaleAct.
    Il problema che si presenta sia su firefox che su ie...

    Qualcuno mi sa spiegare il motivo ?

    Grazie

  2. #2
    nella funzione AllargaMenuPrincipale
    nel copia e incolla mi sono dimenticato di settare la variabile a 1 quindi...
    codice:
       if (N<n)
        setTimeout(k,10); 
       else
        {
        FlgMenuAltoAperto=1
         MostraMenuAlto();
    	}

  3. #3
    SCUSATE ... HO SBAGLIATO !!!

    nel codice completo ho commesso un errore e il codice postato era completamente farlocco


    Scusate ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.