• User Newbie

    [jQuery]: menu con sliding

    Salve a tutti. Ho un problema con questo codice. Sto cercando di creare un menu con sliding "esclusivo", ovvero che funzioni in questo modo. Quando clicco su un link nel menu (quindi su 1.0 o 2.0), vorrei far aprire con sliding il sotto menu relativo, andando a chiudere con sliding eventuali altri sottomenu già aperti. Così, i vari sotto menu si aprono correttamente, ma non si chiudono quelli eventualmente aperti aperti (se clicco su 2.0, si apre il sottomenu, ma se poi clicco su 1.0, il sottomenu di 2.0 non si chiude). Potete darmi una mano?
    Grazie

    codice:
    [html]
    <html>
    <head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">

    $(document).ready(function(){
        
        $("li > div").hide();
        
        $("a").click(function(){
    
            if($(this).parent().parent().get(0).id == "menu")
            {
                if($(this).siblings().display = "none")
                    $(this).siblings().slideDown("slow");
            }
        })
    
    })
    
    </script>
    

    </head>
    <body>
    <a href="#">Non slide</a>

    <ul id="menu">
        <li>
            <a class="uno" href="#">1.0</a>
            <div>
                <ul class="subMenu">
                    <li><a href="#">Menu 1.1</a></li>
                    <li><a href="#">Menu 1.2</a></li>
                </ul>
            </div>
        </li>
        <li>
            <a class="due" href="#">2.0</a>
            <div>
                <ul class="subMenu">
                    <li><a href="#">Menu 2.1</a></li>
                    <li><a href="#">Menu 2.2</a></li>
                </ul>
            </div>
        </li>
    </ul>
    

    </body>
    </html>
    [/html]


  • User

    Forse così?

    
        $(document).ready(function(){
    
            $("#menu > li > div").toggle();
            
            $("#menu > li > a").click(function () {
                      var index = $("#menu > li > a").index(this);
    
                      $("#menu > li > div").each(function () {
                         var index2 = $("#menu > li > div").index(this);
    
                         if (index == index2) {
                               $(this).toggle('slow');
                         } else {
                             $(this).hide('slow');
                         }
                      });
            });
    
        });
    
    

  • User Attivo

    È quello che interesserebbe anche a me...se invece lo volessi sviluppare in orizzontale invece che verticale ?
    Ed è possibile nidificare altri menu ?

    Grazie!!