2010-03-02 6 views
2

Je cherche à créer un menu déroulant basé DIV de base:DIV menu déroulant (jQuery)

<ul id="menu"> 
    <li> 
     <a href="#">item 1</a> 
     <div class="submenu">something here</div> 
    </li> 
    <li> 
     <a href="#">item 2</a> 
     <div class="submenu">something else here</div> 
    </li> 
    <li> 
     <a href="#">item 3</a> 
     <div class="submenu">something more</div> 
    </li> 
</ul> 

jQuery:

$j('.submenu').hide() 
$j("#menu li a").hover(
    function() { 
    $(this).addClass('active').next('.submenu').addClass('active').slideDown('fast'); 
    }, 
    function() { 
    $(this).addClass('active').next('.submenu').addClass('active').slideUp('fast'); 
    } 
); 

... ne fonctionne pas.

+1

Vous voulez probablement un point-virgule après:. $ j ('du sous-menu') cacher() et le $ j, est jquery référencé comme tel, ou comme le $ comme sur le $ (ceci)? –

Répondre

0

ul n'est pas sous #menu, il est#menu, essayez ceci:

$j(document).ready(function(){ 
    $j('.submenu').hide(); 
    $j("#menu li a").hover(
    function() { 
     $(this).addClass('active').next('.submenu').addClass('active').slideDown('fast'); 
    }, 
    function() { 
     $(this).removeClass('active').next('.submenu').removeClass('active').slideUp('fast'); 
    } 
); 
}); 
3
"#menu ul li a" 

ne fait référence à rien. menu est un ul

+0

Oh désolé, l'imbrication n'est pas le problème dans mon cas, je l'ai vérifié. – 3zzy

+0

Je viens de lancer un test simple après avoir supprimé ul et cela a fonctionné. J'ai aussi changé $ j en $, mais je ne sais pas si vous utilisez un alias. J'ai également ajouté un point-virgule après hide() et changé les guillemets en guillemets doubles dans ".submenu" – dbrien