2011-03-12 7 views
0

Je rencontre des problèmes avec le menu déroulant de mon site Web à l'aide de JQuery.JQuery menus déroulants et déroulants

Fondamentalement, ce que je veux réaliser est un simple menu déroulant horizontal avec le vol stationnaire de JQuery (dans le module de menu DHTML de Drupal). Cependant, il y a quelques ennuis que je n'ai pas pu réparer.

Donc le menu principal et leur enfant <li> s sont tous des liens. Lorsque je clique sur l'un des menus enfants, tout va bien (je suis dirigé vers la destination, le menu se réinitialise à l'état normal non bougé). Mais quand je clique sur le menu parent, après être arrivé à destination, même si le menu déroulant se réinitialise, la souris plane toujours au-dessus du lien. Cela entraîne l'activation de la liste déroulante à nouveau lorsque je déplace ma souris. Ce que je veux, c'est que la liste déroulante ne s'active que lorsque la souris entre dans l'élément, et non quand elle sort. J'ai essayé de séparer .hover() en .mouseenter() et .mouseleave(), mais au lieu de cela, la liste déroulante ne fonctionne pas du tout. Aidez-moi!

Mon code est ci-dessous:

$(li).hover(function(e) { 
    Drupal.dhtmlMenu.expandMenu($(li)); 
}, 
function(e) { 
    Drupal.dhtmlMenu.collapseMenu($(li)); 
}); 

$(li).ready(function(e) { 
    Drupal.dhtmlMenu.collapseMenu($(li)); 
}); 

Répondre

1

Utilisez le module Nice Menus. Cela vous sauvera de ce mal de tête. Je l'utilise depuis que j'ai commencé avec Drupal il y a 3 ans.

1

Absolument pas besoin d'utiliser JavaScript pour un menu simple menu déroulant. Voir http://webdesignerwall.com/tutorials/css3-dropdown-menu (CSS3 est utilisé mais le CSS de base fonctionnera dans tous les navigateurs). Faites-le purement en CSS/HTML

+0

J'ai utilisé CSS avant cela (le code reste donc la liste déroulante fonctionne toujours si le client a désactivé JavaScript). C'est juste une addition cosmétique que je veux ajouter. – bow