Je suis en train de créer un menu avec cette structure:problèmes avec jQuery mouseLeave
<ul id="primary" class="menuOptions">
<li>Item 1</li>
<li>Item 2
<div id="secondary">
<ul class="menuOptions">
<li>subItemOne</li>
<li>subItemTwo</li>
</ul>
</div>
</li>
<li>Item 3</li>
</ul>
J'Animer avec ce script:
$j('.menuOptions li').each(function(i){
//applies to all menu options
$j(this)
.bind('mouseover',function() {
$j(this).toggleClass("over");
})
.bind('mouseleave',function() {
$j(this).toggleClass("over");
});
});
Je trouve que la fonction toggleClass est appelée sur l'élément de menu principal lorsque la souris se déplace sur les éléments de menu secondaires. Je sais que le mouseleave n'est pas censé être appelé jusqu'à ce que la souris soit aussi hors des enfants, donc je suis confus. Ai-je besoin d'arrêter activement la propagation d'un événement d'une manière ou d'une autre?
Merci!
Tim
Le comportement est différent mais toujours pas comme souhaité. Avec ma version, l'élément principal clignote lorsque je passe sur chaque secondaire. Avec votre version, le primaire bascule une seule fois lorsque la souris quitte la zone principale et se déplace sur la zone secondaire.Donc le tien a l'air mieux, mais toujours pas ce que je veux. –
Oups! Mon erreur, je testais sur un mauvais exemple. Votre solution fonctionne. Merci! –
pas de problème, bonne chance – redsquare