10
votes

Backbone.js - Cliquez sur les deux clics et double-cliquez sur un éventuel

Dans ma vue d'attelage, j'ai défini des événements comme celui-ci:

events : {
  'click .elm' : 'select',
  'dblclick .elm' : 'toggle'

},

select: function(e){
    e.preventDefault();
    console.log('single clicked');
}

toggle : function(e){
    e.preventDefault();
    console.log('double clicked');
}


0 commentaires

3 Réponses :


0
votes

Essayez d'ajouter retour false; à la fin de Select & Tockgle.


0 commentaires

5
votes

Ce n'est pas un problème avec la colonne vertébrale elle-même. Il s'agit de gérer comment gérer les événements simples clic et double-cliquez sur le même bouton.

voir

  1. Besoin d'annuler des événements Cliquez / Mousep lorsque vous double-cliquez sur l'événement détecté

  2. JavaScript avec jQuery: cliquez et double-cliquez sur le même élément, un effet différent, on désactive l'autre

    mise à jour: mais ce serait mieux si vous n'aviez pas à gérer. Voir MU est une réponse trop courte ci-dessous!


0 commentaires

7
votes

Le Documentation JQuery recommande spécifiquement de ce que vous faites:

Il est invisible de lier les gestionnaires à la fois au Cliquez sur et DBLCLICK Evénements pour le même élément. La séquence des événements déclenchés varie d'un navigateur au navigateur, avec quelques événements de deux Cliquez sur avant le DBLClick et les autres un seul. Double-cliquez sur la sensibilité (heure maximale entre les clics détectés en double-clic) peut varier selon le système d'exploitation et le navigateur, et est souvent configurable par l'utilisateur.

Ce que vous voyez est exactement ce qui est attendu (en fonction du navigateur bien sûr). Le seul moyen de contourner votre problème est de définir une minuterie et de différencier manuellement entre vous et double-cliquez sur vous-même. Ensuite, vous devrez régler la valeur de la minuterie et vérifier divers navigateurs et systèmes d'exploitation jusqu'à ce que vous obtenez quelque chose qui prétend travailler dans la plupart des endroits.

Je vous recommande vivement d'utiliser des contrôles distincts avec des actions à un clic à une seule fois. Double-clic est assez hostile et nous le supporde seulement parce que nous y sommes habitués.


1 commentaires

Hmm. Je dois changer mon comportement de l'application.