Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 28 su 28
  1. #21
    Originariamente inviato da mrcanoa
    ma semplificare il todos????
    La tua semplificazione non va bene principalmente per tre motivi:
    1. display:none rende il contenuto nascosto invisibile ai lettori di schermo, quindi è un errore dal punto di vista dell'accessibilità;
    2. il tuo script non è indipendente dalla struttura di markup; se ad esempio si vuole inserire un numero arbitrario di sotto-menu, nel markup dovrai andare ad inserire ad ognuno l'attributo di evento;
    3. in caso di javascript disabilitato, i sotto-menu non saranno visibili in quanto hai attribuito le classi direttamente nel markup invece che tramite script.

    Un bel disastro, insomma.

  2. #22

  3. #23
    @mrcanoa, grazie per l'esempio!


    @piero
    C'è la possibilità di indicare che uno dei menu a discesa si carichi già aperto, per dire: onload pagina apri il sotto menu x e gli altri chiusi?
    Perché vedo che il tuo script apre la pagina con i sotto menu aperti...

  4. #24
    Originariamente inviato da Ugly Mau
    C'è la possibilità di indicare che uno dei menu a discesa si carichi già aperto, per dire: onload pagina apri il sotto menu x e gli altri chiusi?
    Sì, certamente. In coda, aggiungi:

    codice:
    // Inizializziamo la pagina nascondendo tutti i sotto-menu
    for (var i = 0; i < sotto_menu_voci.length; i++)
    {
       sotto_menu_voci[i].className = 'menu_nascosto'
    }
    var elemento_aperto = document.getElementById('menu1')
    elemento_aperto.className = ' '
    
    Perché vedo che il tuo script apre la pagina con i sotto menu aperti...
    Chiusi, vorrai dire...

  5. #25
    Originariamente inviato da pierofix

    Chiusi, vorrai dire...
    Ehh io li vedo aperti, sia su IE che su FF


    Questa è la pagina che ho usato:
    codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    
    <style type="text/css">
    
    .menu_nascosto
    {
       position:absolute; top:-100px;
       width:1px; height:1px;
       overflow:hidden;
    }
    .menu_titolo
    {
       color:blue;
       text-decoration:underline;
       cursor:pointer;
    }
    
    </style>
    <script type="text/javascript">
    window.onload = function()
    {
       // Prepariamo tutti gli attori dello script
       var menu = document.getElementById('menu')
       var menu_elementi = menu.childNodes
       var sotto_menu = new Array()
          for (var i = 0; i < menu_elementi.length; i++)
          {
             if ( menu_elementi.item(i).nodeType == 1 )
             {
                sotto_menu.push(menu_elementi.item(i))
             }
          }
       var sotto_menu_titoli = new Array()
          for (var i = 0; i < sotto_menu.length; i++)
          {
             var titolo_corrente = sotto_menu[i].getElementsByTagName('span').item(0)
             sotto_menu_titoli.push(titolo_corrente)
          }
       var sotto_menu_voci = new Array()
          for (var i = 0; i < sotto_menu.length; i++)
          {
             var voci_corrente = sotto_menu[i].getElementsByTagName('ul').item(0)
             sotto_menu_voci.push(voci_corrente)
          }
    
       // Prepariamo le funzioni 'visualizza' e 'nascondi'
       function nascondi_menu(indice, menu_corrente)
       {
          sotto_menu_voci[indice].className = 'menu_nascosto'
          menu_corrente.onclick = function()
          {
             visualizza_menu(indice, menu_corrente)
          }
       }
       function visualizza_menu(indice, menu_corrente)
       {
          sotto_menu_voci[indice].className = ' '
          menu_corrente.onclick = function()
          {
             nascondi_menu(indice, menu_corrente)
          }
       }
    
       // Attribuiamo le funzioni ad ogni sotto-menu
       function attribuisci_visualizza(elemento,idx)
       {
          elemento.onclick = function()
          {
             visualizza_menu(idx, elemento)
             return false
          }
       }   
       for (var i = 0; i < sotto_menu_titoli.length; i++)
       {
          var elemento = sotto_menu_titoli[i];
          attribuisci_visualizza(elemento, i);
       }
    
       // Rendiamo visivamente simili a link i titoli cliccabili dei sotto-menu
       for (var i = 0; i < sotto_menu_titoli.length; i++)
       {
          sotto_menu_titoli[i].className = 'menu_titolo'
       }
    
       // Inizializziamo la pagina nascondendo tutti i sotto-menu
       for (var Ai = 0; i < sotto_menu_voci.length; i++)
       {
          sotto_menu_voci[i].className = 'menu_nascosto'
       }
       
       var elemento_aperto = document.getElementById('menu1')
    elemento_aperto.className = 'menu1';
    
    }
    
    
    </script>
    </head>
    
    <body>
    
    <ul id="menu">[*]
          <span>Verdura</span>
          <ul id="menu1">[*]Pomodori[*]Carote[/list]
       [*]
          <span>Frutta</span>
          <ul id="menu2">[*]Mele[*]Pere[/list]
       [/list]
    
    
    </body>
    </html>

  6. #26
    Ti è scivolata una 'A' verso la fine dello script!

    codice:
       // Inizializziamo la pagina nascondendo tutti i sotto-menu
       for (var Ai = 0; i < sotto_menu_voci.length; i++)
       {
          sotto_menu_voci[i].className = 'menu_nascosto'
       }

  7. #27
    Azzz, è il mio editor che ogni tanto mi aggiunge dei caratteri in più nei copia/incolla

    Ora è ok!


    Ragazzi grazie infinitamente, a tutti!


  8. #28

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.