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 ?
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 ?
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/
Vous pouvez utiliser un paramètre supplémentaire comme ceci :
comme statufié dans le jQuery déclenchement manuel
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!
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 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.