Comment prévenir faites glisser le doigt pour déclencher cliquez sur?

- Je utiliser TouchSwipe pour créer un swipeable liste d'images. - Je lier le mouvement de balayage d'événement pour les images, tandis que j'ai également lier un événement click qui permettra d'ouvrir l'image est grande la version.

Mon problème est que si je le balayage, il déclenche également l'événement click. J'ai essayé tapez au lieu de glisser mais je ne peux pas le faire fonctionner. Après cela, j'ai essayé event.preventDefault() et event.stopPropagation() qui a été suggéré dans un beaucoup de place, mais il n'y a pas d'effet. Ma solution finale tentative a été de séparer l'événement click et lier de nouveau après l'événement, mais si je lier l'événement à la fin de la fonction d'événement, il déclenche cliquez sur nouveau.

$(".js-header-swipe-image").swipe({
    swipe:function(event, direction, distance, duration, fingerCount){
        $("#details").unbind('click');//Temporary unbind, otherwise the swipe's click would trigger the gallery opening.

        //Handling swipe direction.

        $('#details').on('click', '.js-header-swipe-image', function (){//Rebind the temporary unbinded event.
            console.log('click');
            $('#modal-gallery').modal('show');
        });
    }
});

Est-il un moyen d'annuler un événement lui-même ou appeler une fonction après l'événement terminé donc je peux relier le clic une fois le balayage terminé donc il ne serait pas déclencher la rebinded cliquez sur? Je suis aussi ouvert à toute autre solution au problème.

Avez-vous trouvé la solution?
Non, mais a constaté que, dans les plates-formes mobiles, il est mis en œuvre différemment afin que ce problème n'existe pas. Encore un problème sur le PC.
Je fixe la mienne, c'est à l'aide révolution curseur balayez vers la place, j'ai renommé $.fn.balayez vers $.fn.swipeing et appelé .swipeing({}), vérifiez si cela vous aide. Vous pourriez avoir d'autres plugin qui remplacent le balayage.

OriginalL'auteur totymedli | 2013-10-07

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *