Annuler touchend si touchmove feux
Je suis en train de construire quelque chose principalement pour une utilisation sur des tablettes, où l'utilisateur peut appuyer sur un élément sur l'écran et une classe est appliquée. C'est ce que j'ai à ce jour:
Les problèmes:
- Je veux utiliser les événements tactiles pour supprimer la classe et ajouter la classe sur la touche de fin (pour le rendre plus rapide).
- Je ne veux pas qu'il fasse n'importe quoi, si l'utilisateur effectue (touchmoves).
J'ai essayé un certain nombre de choses, dont aucun n'a fonctionné. Le plus simple que j'ai essayé (sans succès):
var dragging = false;
$(".items").on("touchmove", function(){
dragging = true;
});
$('.items').on("click touchend", function(event){
if (dragging = true){
}
else{
$('.items').removeClass('selected');
$(this).addClass('selected');
}
});
if (dragging = true)
faut juste être if (dragging)
, ou mieux encore if (!dragging)
puis passer le tout dans le else dans l'instruction if (donc, vous n'aurez pas d'autre).Une fois que vous
touchmove
une fois, vous dragging = true
, ce sera un pas de permettre à d'autres de clics par votre code. Vous devez réinitialiser dragging = false
après l'événement se termine.
OriginalL'auteur EmmaGamma | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
Je dirais que c'est plus sûr moyen de le faire
Paramètre variable à false
Paramètre var à vrai ontouchmove (permet de réutiliser ce code, partout dans votre application)
Votre bouton
La réinitialisation de la variable (important)
OriginalL'auteur Jonathan
Vous souhaitez utiliser l'une des opérations suivantes:
Ou, tout simplement:
Vous ne devez utiliser qu'un seul
=
signe quand vous êtes réglage une valeur, tandis que les deux==
signes doivent être utilisés lors de vérification une valeur. Par conséquent, votre code devrait ressembler à:Remarquez que vous n'avez pas besoin de vérifier si
dragging == true
parce que vous n'êtes pas en cours d'exécution du code dans ce cas. Au lieu de cela, vous pouvez simplement vérifier sidragging == false
ou,!dragging
Voici un lien vers le site: reveriesrefined.com/myftp/Crane la console n'est pas visible des erreurs dans chrome ou firefox.
OriginalL'auteur What have you tried
où vous devez glisser case à mettre
il le remettra à la libération
aussi méfiez-vous des doubles appels sur les événements qu'ils déclenchent parfois deux fois sur certaines plates-formes préférable de vérifier plate-forme avec d'abord ce qui suit vous aidera avec des chèques
ou
OriginalL'auteur Derry White