2011-05-17 4 views
2

Je veux savoir si un utilisateur arrête d'appuyer sur un bouton. Je capture donc les événements $ button.mouseup (...) et $ button.mouseout (...). Cependant, je veux que l'événement mouseout ait de l'importance seulement quand l'utilisateur appuie toujours sur la souris. Sinon, il se déclenchera à chaque fois que l'utilisateur passera sur le bouton.Vérifiez si la souris est arrêtée sur un événement mouseout - jQuery

Des idées?

+0

Vous pouvez simplement définir une variable globale 'true' sur mousedown et obtenez cette valeur sur' mouseout'. – pimvdb

Répondre

8

Vérifiez e.which, ce qui indique le bouton enfoncé.

+0

Belle, ça m'a beaucoup aidé. –

1

Une méthode rapide et sale serait d'utiliser globals (ou fermetures, d'une certaine façon de donner à la fois le mouseup et l'accès mouseout fonctions à la même variable):

var mouseIsUp = true, 
    onMouseUp = function() { 
     mouseIsUp = true; 
     // ... 
    }, 
    onMouseDown = function() { 
     mouseIsUp = false; 
    }, 
    onMouseOut = function() { 
     if (!mouseIsUp) { 
      // ... 
     } 
    }; 
+0

Je ne suis pas sûr que cela fonctionnera dans le cas où la souris a quitté l'élément d'origine entre les événements mousedown et mouseup. – Alnitak

+0

@Alnitak Je pense que j'ai typo'd la vérification conditionnelle. Est-ce ce dont vous parliez? – sdleihssirhc

Questions connexes