Maison > Article > interface Web > Comment faire en sorte que seul un événement de double-clic se produise dans jquery
Dans le développement Web, jquery est souvent utilisé pour obtenir des effets d'interaction de page. Parmi eux, les événements de double-clic et les événements de clic sont inévitables. Mais il arrive parfois qu'un événement de double-clic déclenche deux événements de clic. À ce stade, nous devons empêcher l'événement de clic de se produire et autoriser uniquement l'événement de double-clic. Alors, comment y parvenir ?
Tout d'abord, nous devons comprendre la méthode de liaison d'événement dans jquery. Il existe deux méthodes pour la liaison d'événements, l'une consiste à lier à l'aide de la méthode bind() et l'autre à l'aide de la méthode on(). Ces deux méthodes sont essentiellement les mêmes. La méthode on() est une version améliorée de la méthode bind(), ajoutant la prise en charge des éléments dynamiques. Nous pouvons implémenter la liaison d'événements par double-clic via ces deux méthodes.
La méthode d'implémentation spécifique est la suivante :
Utilisez la méthode bind() pour lier les événements de double-clic et les événements de clic.
$("#element").bind({ click: function() { //单击事件的处理逻辑 }, dblclick: function() { //双击事件的处理逻辑 } });
Cette méthode définit en fait un objet et lie les événements click et dblclick. Ensuite, leurs fonctions logiques de traitement correspondantes sont données respectivement.
Utilisez la méthode on() pour lier les événements de double-clic et les événements de clic.
$("#element").on("click", function() { //单击事件的处理逻辑 }).on("dblclick", function() { //双击事件的处理逻辑 });
Cette méthode lie d'abord l'événement click, puis lie l'événement dblclick dans une chaîne. Il est également nécessaire de donner respectivement leurs fonctions logiques de traitement correspondantes.
Dans les deux méthodes ci-dessus, nous pouvons remarquer que l'événement double-clic est lié après l'événement clic. En effet, si l'événement de double-clic est lié avant l'événement de clic, alors lorsque l'utilisateur double-clique, l'événement de double-clic sera déclenché en premier, puis l'événement de clic sera déclenché deux fois. Cela n’aura pas pour effet d’interdire les événements de clic.
Ensuite, nous devons désactiver le déclenchement de l'événement click dans la fonction logique de traitement des événements double-clic. L'opération spécifique consiste à utiliser la fonction setTimeout() pour permettre à l'événement click d'être exécuté après une certaine période de temps. Si l'utilisateur clique à nouveau pendant cette période, effacez la dernière fonction setTimeout() et réinitialisez une nouvelle fonction setTimeout(). De cette manière, l'impact de l'événement de clic peut être effacé et seul l'impact de l'événement de double-clic sera conservé.
Le code d'implémentation spécifique est le suivant :
var timer = null; $("#element").bind({ click: function() { var that = this; clearTimeout(timer); timer = setTimeout(function() { //单击事件的处理逻辑 }, 200); }, dblclick: function() { clearTimeout(timer); //双击事件的处理逻辑 } });
Dans le code ci-dessus, nous définissons une variable timer pour stocker la valeur de retour de la fonction setTimeout() afin qu'elle puisse être effacée ultérieurement. Dans la fonction logique de traitement des événements de clic, effacez d'abord la dernière fonction setTimeout(), puis définissez une nouvelle fonction setTimeout() pour retarder l'exécution de l'événement de clic de 200 millisecondes. Dans la fonction logique de traitement des événements de double-clic, effacez la dernière fonction setTimeout(), puis exécutez l'événement de double-clic. De cette façon, l'événement click est désactivé.
Il convient de noter que l'intervalle de temps de la fonction setTimeout() doit être ajusté en fonction de la situation réelle. Il est préférable de le définir après le test.
Pour résumer, nous pouvons utiliser la méthode suivante pour désactiver les événements de clic :
Ce qui précède explique comment implémenter un événement de double-clic pour empêcher l'apparition d'un événement de clic via jquery. J'espère que cela vous sera utile.
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!