Maison interface Web js tutoriel Solution au déclenchement d'un clic d'événement deux fois dans les compétences iScroll_javascript

Solution au déclenchement d'un clic d'événement deux fois dans les compétences iScroll_javascript

May 16, 2016 pm 04:10 PM
点击

J’ai déjà lu de nombreux articles d’amis traitant de ce problème. Par exemple, utilisez une variable pour enregistrer l'intervalle d'exécution ou quelque chose du genre. J'ai l'impression de devoir me masturber à chaque fois, ce qui est assez fatiguant. J'aime choisir des outils avant de déplacer des briques. En fait, la solution à ce problème est très simple. iScroll intercepte en fait les événements touchstart et touchend lorsque l'on clique sur le navigateur. Utilisez js pour déclencher l'événement onclick de l'élément (fonction _end) lorsque vous touchez la fin. En fonctionnement réel, touchend est exécuté en premier, puis la fonction associée à onclick est exécutée. Cela crée un casse-tête avec un clic et deux déclencheurs. Ce n'est pas un problème en premier lieu. La raison pour laquelle c'est un problème est que nous devons jeter un œil au code source d'iScroll. La façon de résoudre ce problème est de refuser d’exécuter la fonction une deuxième fois. Et ma logique est exactement la même. Nous pouvons supprimer la fonction liée à l'événement onclick après avoir exécuté le code qui déclenche l'événement click dans la fonction _end. Ajoutez ensuite à nouveau l'événement après quelques centaines de millisecondes de timing. Par exemple :

Copier le code Le code est le suivant :

//Avant le traitement
Double-cliquez sur test
//Après traitement
Test de double-clic

Après avoir supprimé les fonctions liées à onclick, la fonction de test ne se déclenchera naturellement pas une deuxième fois. Afin de continuer à l'utiliser la prochaine fois, nous pouvons utiliser setTimeout pour restaurer le contenu onclick.

Le code source iscroll modifié (environ 550 à 570 lignes, dans la fonction _end) :

Copier le code Le code est le suivant :

that.doubleTapTimer = setTimeout(function () {
                            ça.doubleTapTimer = null;
                            // Retrouver le dernier élément touché
                            cible = point.cible;
                            while (target.nodeType != 1) target = target.parentNode;
                            if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
                                ev = doc.createEvent('MouseEvents');
                                ev.initMouseEvent('click', true, true, e.view, 1,
                                    point.screenX, point.screenY, point.clientX, point.clientY,
                                    e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
                                    0, nul);
                                ev._fake = vrai;
                                target.dispatchEvent(ev);
                                /**Les codes suivants sont de nouveaux codes**/
                                //找到绑定cliquez sur事件的元素。
                                var obj = $(target).attr("onclick") != null ? $(target) : $(target).parents("[onclick]")[0];
                                si (obj != null) {
                                    var clickContent = $(obj).attr("onclick");
                                    if (clickContent != "void(0)") {
                                        //利用新的属性来存储原有的cliquez函数
                                        $(obj).attr("data-clickbak", $(obj).attr("onclick"));
//Modifiez la valeur de l'attribut onclick.
$(obj).attr("onclick", "void(0)");
//Empêcher les clics violents
Si (that.hashBox.length>0) {
pour (var _i = 0; _i < that.hashBox.length; _i )
                                                                                                                                                                                That.hashBox.splice(_i, 1);
pause;
                                                                                                                                                                                                                                                That.hashBox.push ($(obj));
Ça._clickBack();
                                                                                                                                                                                                                                                                  }                                                                                                                                                                                                                                               } //fin
                                                                                                   }                                                                                                                                                                                                                                                              

Fonction _clickBack et extrait de code hashBox (ajoutés avant la fonction _end)

Copier le code Le code est le suivant :

        hashBox : [],
/*Restaurer l'événement de l'objet cliqué*/
​​​​​ _clickBack : fonction () {
            var ça = ceci ;
              setTimeout(function () {
Si (that.hashBox.length > 0) {
                    var obj = that.hashBox.pop();
                                                         obj.attr("onclick", obj.attr("data-clickbak"));
Si (that.hashBox.length > 0) that._clickBack();
                }
             }, 500);
>

Bien sûr, il peut également être implémenté via une fonction publique sans modifier le code source d'iscroll.

Ce qui précède représente tout le contenu de cet article. J'espère qu'il sera utile à tout le monde d'apprendre à utiliser le contrôle coulissant iscroll

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment définir plusieurs minuteries sur iPhone iOS 17 Comment définir plusieurs minuteries sur iPhone iOS 17 Sep 18, 2023 am 09:01 AM

Dans iOS 17, vous pouvez définir plusieurs minuteries sur votre iPhone à l'aide de l'application Horloge ou utiliser Siri pour le régler en mode mains libres. Nous discutons des deux dans cet article. Jetons un coup d'oeil à eux. Définir plusieurs minuteries sur iPhone à l'aide de l'application Horloge Ouvrez l'application Horloge sur votre iPhone et appuyez sur l'onglet Minuteries dans le coin inférieur droit. Maintenant, réglez les heures, les minutes et les secondes. Vous pouvez utiliser les options « Étiquette » et « Quand la minuterie se termine-t-elle » pour définir un nom pour la minuterie et une tonalité préférée lorsque la minuterie se termine. Cela vous aidera à différencier les minuteries. Une fois terminé, cliquez sur le bouton "Démarrer". Ensuite, cliquez sur l'icône "+" dans le coin supérieur droit. Maintenant, répétez les étapes ci-dessus pour définir plusieurs minuteries sur iPhone. Vous pouvez également parcourir

Comment configurer ma carte de visite dans Contacts sur iPhone [2023] Comment configurer ma carte de visite dans Contacts sur iPhone [2023] Sep 22, 2023 pm 09:17 PM

Avec Mes cartes de visite dans iOS, vous pouvez créer une carte de contact personnalisée que Siri et d'autres services reconnaissent et associent à vous et à votre numéro de téléphone. Avec l'introduction des affiches de contact dans iOS17, Mes cartes deviennent très importantes car elles sont désormais utilisées pour créer vos affiches de contact. Si vous avez hâte de mettre en place votre affiche de contact, vous devez commencer par configurer Ma carte de visite. Nous expliquerons comment créer une carte de visite Ma carte de visite et comment la faire fonctionner correctement avec Siri et votre affiche de contact. Comment configurer mes cartes de visite dans les contacts sur iPhone [2023] Si vous configurez mes cartes de visite sur votre iPhone pour la première fois, vous devez le faire via l'application Contacts uniquement.

Comment créer une liste de courses dans l'application de rappels iOS 17 sur iPhone Comment créer une liste de courses dans l'application de rappels iOS 17 sur iPhone Sep 21, 2023 pm 06:41 PM

Comment créer une liste d'épicerie sur iPhone sous iOS17 Créer une liste d'épicerie dans l'application Rappels est très simple. Il vous suffit d'ajouter une liste et de la remplir avec vos éléments. L'application trie automatiquement vos articles en catégories et vous pouvez même travailler avec votre partenaire ou partenaire d'appartement pour dresser une liste de ce que vous devez acheter dans le magasin. Voici les étapes complètes pour ce faire : Étape 1 : activer les rappels iCloud Aussi étrange que cela puisse paraître, Apple dit que vous devez activer les rappels d'iCloud pour créer une liste d'épicerie sur iOS17. Voici les étapes à suivre : Accédez à l'application Paramètres sur votre iPhone et appuyez sur [votre nom]. Ensuite, sélectionnez je

Comment changer les photos des contacts sur iPhone Comment changer les photos des contacts sur iPhone Jun 08, 2023 pm 03:44 PM

iOS17 est enfin là et inclut de nombreuses nouvelles fonctionnalités. Apprenons comment modifier les photos des contacts sur iPhone dans le didacticiel d'aujourd'hui. Le récent événement WWDC 2023 d'Apple a dévoilé une multitude de produits passionnants et de mises à jour logicielles à venir. L'une des fonctionnalités notables d'iOS 17 est la possibilité de personnaliser les photos et les affiches de vos contacts, offrant ainsi un moyen unique de saluer les autres lorsqu'ils reçoivent un appel de votre part sur leur iPhone. Cette fonctionnalité innovante pour iOS est conçue pour rendre les appels téléphoniques plus personnels et conviviaux, en vous permettant de choisir comment ils apparaissent sur l'écran du destinataire. Si vous avez hâte de mettre la main sur cette nouvelle fonctionnalité et de saluer vos proches de manière personnalisée lors de vos appels, voici comment l'ajouter à votre iPhone

Comment désactiver les alarmes sur iPhone [2023] Comment désactiver les alarmes sur iPhone [2023] Aug 21, 2023 pm 01:25 PM

Depuis l’avènement des smartphones, ils ont sans doute remplacé les réveils. Si vous possédez un iPhone, vous pouvez utiliser l'application Horloge pour définir facilement autant d'alarmes à plusieurs reprises tout au long de la journée. L'application vous permet de configurer l'heure de l'alarme, la tonalité, la fréquence de répétition et si vous souhaitez les retarder à l'aide de l'option Snooze. Si vous souhaitez désactiver l'alarme que vous avez définie, l'article suivant devrait vous aider à désactiver et supprimer les alarmes régulières et les alarmes de réveil sur votre iPhone. Comment désactiver une alarme régulière sur iPhone Par défaut, lorsque vous ajoutez une alarme sur l'application Horloge ou demandez à Siri d'ajouter une alarme pour vous, vous créez en fait une alarme normale. Vous pouvez créer autant de réveils sur votre iPhone que vous le souhaitez et les mettre

Maîtrisez l'art d'utiliser les guides Apple Maps sur iPhone et iPad Maîtrisez l'art d'utiliser les guides Apple Maps sur iPhone et iPad Aug 30, 2023 am 09:25 AM

Dans un monde technologique en constante évolution, la capacité de naviguer sur des cartes numériques est devenue une compétence essentielle. Cet article fournit un guide complet sur la façon d'utiliser les guides Apple Maps sur iPhone et iPad, une fonctionnalité qui révolutionne la façon dont les utilisateurs explorent leur environnement et planifient leurs voyages. Apple Maps est une application intégrée à tous les appareils Apple, et elle est constamment mise à jour et améliorée pour offrir une expérience de navigation fluide. L'une de ses fonctionnalités les plus remarquables est la fonction Guide, qui fournit une liste organisée de lieux intéressants à visiter dans diverses villes du monde. Cette fonctionnalité est non seulement bénéfique pour les voyageurs, mais aussi une aubaine pour les habitants cherchant à découvrir de nouvelles attractions dans leur ville. Guide Comment utiliser Apple Maps sur iOS Tout d'abord, visitez Apple Maps

Comment réparer votre téléphone Android lorsqu'il ne parvient pas à se connecter à un réseau sans fil Comment réparer votre téléphone Android lorsqu'il ne parvient pas à se connecter à un réseau sans fil Aug 14, 2023 pm 08:53 PM

Vérifications préliminaires Avant d'aborder des solutions plus techniques, il convient d'effectuer quelques vérifications préliminaires sur votre téléphone Android : Vérifiez votre connexion WiFi : assurez-vous que d'autres appareils peuvent se connecter au réseau WiFi. S'ils n'y parviennent pas, le problème vient peut-être de votre routeur ou de votre fournisseur de services Internet. Redémarrez votre appareil : Parfois, un simple redémarrage peut résoudre de nombreux problèmes liés à la technologie. Éteignez votre téléphone, attendez quelques secondes, puis rallumez-le. Oublier et reconnecter à un réseau : accédez à vos paramètres WiFi, sélectionnez le réseau en question, puis sélectionnez "Oublier". Ensuite, reconnectez-vous en saisissant à nouveau votre mot de passe. Si ces étapes ne fonctionnent pas, il est temps de creuser plus profondément. Dépannage avancé 1. Vérifiez les mises à jour du système Un logiciel obsolète provoque souvent

Comment réparer les appels WiFi qui ne fonctionnent pas sur Android Comment réparer les appels WiFi qui ne fonctionnent pas sur Android Jun 24, 2023 am 10:55 AM

1. Vérifiez que les appels WiFi sont activés. Votre première étape doit être de vérifier que les appels WiFi sont activés sur votre appareil. Ouvrez l'application Téléphone : cliquez sur l'icône Téléphone sur l'écran d'accueil ou dans le tiroir d'applications. Accédez au menu Paramètres : cliquez sur le menu à trois points (également appelé "menu hamburger") dans le coin supérieur droit de l'écran, puis sélectionnez "Paramètres" dans le menu déroulant. Rechercher des appels Wi-Fi : l'emplacement de ce paramètre peut varier en fonction du fabricant de l'appareil. Il se trouve généralement sous « Appels » ou « Appels avancés ». Cliquez dessus. Activer les appels Wi-Fi : s'il n'est pas déjà activé, activez-le. 2. Vérifiez votre connexion Internet Votre fonctionnalité d'appel WiFi dépend fortement de votre connexion Internet. Par conséquent, assurez-vous que votre connexion WiFi est stable. tu peux

See all articles