Maison > interface Web > js tutoriel > Raisons et solutions pour la perte d'événement mouseup en JavaScript

Raisons et solutions pour la perte d'événement mouseup en JavaScript

陈政宽~
Libérer: 2017-06-28 12:45:34
original
3171 Les gens l'ont consulté

Cet article vous présente principalement les informations pertinentes sur les raisons et les solutions à la perte de l'événement mouseup en Javascript L'article donne un exemple de code détaillé pour votre référence et votre étude. Amis qui en ont besoin, veuillez suivre l'éditeur pour apprendre.

Avant-propos

Lors de l'implémentation de fonctions similaires à la zone sélectionnée dans Excel, l'événement mouseup est souvent perdu en raison de l'absence de mouseup. événement, entraînant une opération complète impossible à effectuer.

Si vous souhaitez glisser et déplacer, vous pouvez également vous référer à cet article.

Cause

Deux raisons sont actuellement trouvées :

  • Déclencheur L'opération de glisser du navigateur est désactivée, entraînant la perte du déplacement de la souris.

  • Parce que la souris a quitté la zone d'opération, le mouseleave a été déclenché et le mouseup a été perdu.


Solution

Premier cas

Empêcher le L'opération de glissement peut être empêchée en bloquant l'opération par défaut du système en exécutant le code suivant :

//在事件中
e=e || window.event;
pauseEvent(e);

//阻止事件冒泡
//不仅仅要stopPropagation,还要preventDefault
function pauseEvent(e){
 if(e.stopPropagation) e.stopPropagation();
 if(e.preventDefault) e.preventDefault();
 e.cancelBubble=true;
 e.returnValue=false;
 return false;
}
Copier après la connexion
L'opération de glissement peut être empêchée en appelant la méthode pauseEvent sur l'événement, afin d'éviter la perte de la souris dans la zone. . Même si vous souhaitez implémenter une opération de glisser, vous pouvez toujours obtenir l'effet en créant un élément DOM qui suit le mouvement de la souris.

Le deuxième cas

Parce que la souris se déplace en dehors de la zone, l'opération mouseleave est déclenchée, donc dans ce cas, l'opération mouseleave doit être surveillée, et quand l'opération est déclenchée Peut arrêter ou restaurer le

statut .

Une attention particulière doit être accordée à

Lors de la gestion des événements de la souris, vous pouvez également envisager de contrôler quelle touche est enfoncée pour autoriser l'opération. .

Il y a un attribut boutons

dans l'événement Souris. Cette valeur indique que la souris a appuyé sur un ou plusieurs boutons. Si plusieurs touches sont enfoncées, la valeur sera multiple : 0 : Pas de bouton ou non initialisé


1 : Bouton gauche de la souris


2 : Bouton droit de la souris


4 : Molette de la souris ou bouton du milieu


8 : Le quatrième bouton (généralement le bouton « retour du navigateur »)


16 : Le cinquième bouton (généralement le bouton « retour du navigateur ») "Avant")


Lorsqu'il y a plusieurs valeurs, cela équivaut à effectuer une opération |, c'est-à-dire lorsque les boutons gauche et droit de la souris sont enfoncés en même temps, 1|2=3 . Vous pouvez utiliser value&1!=0 pour déterminer si le bouton gauche est enfoncé. Par exemple, lorsque les boutons gauche et droit sont enfoncés en même temps, 3&1!=0 est vrai, indiquant que le bouton gauche est enfoncé.

Résumé

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal