Comprendre la différence entre les événements de survol et de saisie de la souris
Introduction
Lorsque vous interagissez avec des éléments Web, vous pouvez rencontrez des situations où vous devez répondre aux mouvements du curseur de la souris. jQuery fournit deux événements similaires, mouseover et mouseenter, pour gérer de tels scénarios. Cependant, il existe des différences subtiles entre eux qui peuvent avoir un impact sur la fonctionnalité de votre code.
Plonger dans les événements
L'événement mouseover se déclenche lorsque le curseur de la souris entre dans un élément ou l’un de ses éléments enfants. Cela signifie que tant que le curseur se trouve dans les limites de l'élément, l'événement continuera à se déclencher à plusieurs reprises.
L'événement mouseenter, en revanche, ne se déclenche qu'une seule fois lorsque le curseur de la souris entre les limites d'un élément. Peu importe si le curseur se déplace ultérieurement dans l'élément ; l'événement ne se déclenchera pas à nouveau jusqu'à ce que le curseur quitte et rentre dans l'élément.
Démonstration interactive
Pour illustrer clairement la différence, considérez le code jQuery suivant :
<code class="js">var i = 0; $("div.overout") .mouseover(function() { i += 1; $(this).find("span").text("mouse over x " + i); }) .mouseout(function() { $(this).find("span").text("mouse out "); }); var n = 0; $("div.enterleave") .mouseenter(function() { n += 1; $(this).find("span").text("mouse enter x " + n); }) .mouseleave(function() { $(this).find("span").text("mouse leave"); });</code>
Ce code configure des gestionnaires d'événements pour deux div : "overout" avec mouseover et mouseout, et "enterleave" avec mouseenter et mouseleave. Si vous passez votre souris sur « overout » et déplacez le curseur dans ses limites, le texte « survolé » sera mis à jour à plusieurs reprises. Cependant, si vous faites la même chose avec "enterleave", le texte "entrée de la souris" ne sera mis à jour que lorsque vous entrez initialement le div et non lorsque le curseur se déplace à l'intérieur.
Scénarios d'utilisation
En fonction de ces différences, utilisez le survol de la souris si vous devez suivre en permanence le mouvement du curseur dans un élément. Ceci est utile pour des scénarios tels que l'affichage d'info-bulles ou la mise en surbrillance d'éléments lorsque le curseur les survole.
Utilisez mouseenter lorsque vous avez uniquement besoin de savoir quand le curseur entre ou quitte un élément. Ceci convient aux situations dans lesquelles vous souhaitez déclencher une action spécifique ou basculer un état lorsque le curseur entre ou sort d'un élément.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!