Comment puis-je ignorer les événements de la souris sur les éléments enfants en jQuery?
J'ai une liste non ordonnée avec mouseover et mouseout événements attachés à la li éléments. Chacun contient un lien et il y a un peu de rembourrage dans la li. Quand j'ai passer la souris sur le li l'événement mouseover est déclenché, mais quand j'ai passer la souris sur le lien contenues dans le li le mouseout et le passage de la souris événements sont déclenchés dans l'ordre. Il semble que les éléments enfants sont des tirs de leurs éléments parents événements de souris...comment dois-je faire pour arrêter cela? Je veux juste rester mouseovered lorsque le pointeur de la souris sur les liens, de ne pas activer les animations à chaque fois que je la souris sur un lien. C'est mon code;
jQuery(document).ready(function(){
jQuery('#menu li ul').hide();
jQuery('#menu li').mouseover( function() {
jQuery(this).children("ul").show('fast').stop;
return false;
});
jQuery('#menu li').mouseout( function() {
jQuery(this).children("ul").hide('fast').stop;
return false;
});
});
<ul id="menu">
<li><a href="">Some link</a>
<ul>Sub content</ul>
</li>
</ul>
Vous devez vous connecter pour publier un commentaire.
Il semble que j'ai trouvé la réponse à ma propre question. Pour toute personne qui pourrait avoir le même problème, essayez ce code à la place. Il semble planer n'est pas de bulle dans des éléments d'enfant comme les autres événements de souris.
Utilisation "de l'événement.stopPropagation()" pour arrêter les événements de propagation vers le haut:
Vous pouvez également utiliser le mouseenter et mouseleave des événements au lieu de la souris/out. jQuery normalise leur comportement dans les navigateurs et ces événements ont l'avantage de ne pas bouillonnante...
J'étais à la recherche de l'équivalence de comportement en JS où en AS3, vous pouvez mettre:
J'ai trouvé ça fonctionne assez bien, est d'utiliser le CSS et le mettre:
(mais je suppose que ça ne fonctionne que si vous n'avez pas besoin de l'élément pour rien du tout. - Je l'utiliser pour les info-bulles qui apparaissent sur le vol stationnaire, mais ne veulent pas agir bizarre lorsque vous déplacez votre souris).
Vous pouvez essayer ce
L'avantage est l'utilisation de l'événement délégation.
Bonne chance!
Utiliser des classes css pour distinguer les différents niveaux de menu. Vous pouvez facilement rechercher une catégorie ou l'autre dans votre sélecteurs jQuery.