95 votes

En Jquery, comment puis-je savoir entre un clic dépouillée et l’utilisateur ?

Dire que j’ai un gestionnaire de clic défini :

Comment, au sein du gestionnaire de fonctions, savoir si l’événement a été déclenché par programmation, ou par l’utilisateur ?

123voto

mu is too short Points 205090

Vous pourriez avoir un coup d'oeil à l'objet de l'événement e. Si l'événement a été déclenché par un clic réels, vous aurez des choses comme clientX, clientY, pageX, pageY, etc. à l'intérieur d' e et ils seront numéros; ces chiffres sont liés à la position de la souris lorsque le clic est déclenché, mais ils seront probablement présents, même si le clic a été lancé à travers le clavier. Si l'événement a été déclenché par $x.click() alors vous n'aurez pas l'habitude de valeurs de position en e. Vous pouvez consulter également l' originalEvent de la propriété, qui ne devrait pas être là, si l'événement provient d' $x.click().

Peut-être quelque chose comme ceci:

$("#foo").click(function(e){
    if(e.hasOwnProperty('originalEvent'))
        // Probably a real click.
    else
        // Probably a fake click.
});

Et voici un petit bac à sable pour jouer avec: http://jsfiddle.net/UtzND/

45voto

Shikiryu Points 6878

Vous pouvez utiliser un paramètre supplémentaire comme ceci :

comme statufié dans le jQuery déclenchement manuel

9voto

Swanidhi Points 87

Il est une autre question déjà répondu.

Comment détecter si un click() est un clic de souris ou déclenchée par un code?

Utiliser l' which de la propriété de l'objet d'événement. Il convient undefined code-déclenché des événements

$("#someElem").click(function(e) {
    if(e.which) {
     //Actually clicked
    }
else {
    //Triggered by code
   }
});

JsFiddle exemple - http://jsfiddle.net/interdream/frw8j/

Espérons que cela aide!

4voto

Joe Enzminger Points 2532

DOM niveau 3 spécifie event.isTrusted. C’est seulement actuellement pris en charge dans IE9 + et Firefox (basé sur mes tests. J’ai aussi lu (bien que pas soigneusement étudié) qu’elle peut être substituée dans certains navigateurs et n’est probablement pas encore 100 % prêt à réellement faire confiance (malheureusement).

Cette est une version modifiée du violon de @mu qui fonctionne sur IE et Firefox.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X