Maison > interface Web > tutoriel CSS > le corps du texte

Exemples de méthodes pour empêcher les clics répétés à l'aide d'événements de pointeur

小云云
Libérer: 2017-12-19 09:57:30
original
1703 Les gens l'ont consulté

Nous rencontrons toujours le problème des clics répétés sur le front-end. Pour des raisons de réseau, si les utilisateurs ne peuvent pas obtenir de commentaires à temps, ils choisiront probablement de cliquer à nouveau, donc à ce moment, deux demandes répétées seront envoyées à. le back-end. Cela est susceptible de causer de sérieux problèmes, en particulier lors de l'envoi d'un message, deux données en double peuvent être ajoutées. Cet article vous présente principalement les informations pertinentes sur CSS utilisant des événements de pointeur pour éviter les clics répétés. L'article le présente de manière très détaillée à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour l'apprentissage ou la compréhension de chacun.

Lorsque j'ai rencontré cette situation auparavant, je créais généralement une variable canRequest avant la requête js. Puisque la requête est asynchrone, je définirai la variable sur false après le démarrage de la requête. Lorsque la requête se termine, la variable doit être utilisée. être défini sur true quel que soit le succès ou l'échec. Le code simple est le suivant :

var canRequest = true
function postData () {
  if (!canRequest) return
  fetch(url)
  .then(res => {
    canRequest = true  
  })
  .catch(e => {
    canRequest = true
  })
  canRequest = false
}
Copier après la connexion

Il n'y a rien de mal à cela, mais étant donné que le bouton doit généralement être grisé après avoir cliqué, j'ai trouvé A. moyen d'éviter les clics répétés du niveau CSS.

Ce qui suit est un exemple d'obtention d'un code de vérification SMS :

<p id="count">获取验证码</p>
Copier après la connexion
body {
    display: flex;
    height: 100vh;
}
#count {
    margin: auto;
    padding: 10px;
    width: 100px;
    border: 1px solid;
    text-align: center;
    cursor: pointer;
    border-radius: 4px;
}
.disable {
    pointer-events: none;
    color: #666;
}
Copier après la connexion
const count = document.getElementById('count')
const tip = count.textContent
count.onclick = e => {
    console.log(111)
    count.classList.add('disable')
    count.textContent = 10
    var id = setInterval(() => {
        count.textContent--
        if (count.textContent <= 0) {
            count.classList.remove('disable')
            count.textContent = tip
            clearInterval(id)
        }
    }, 1000)
}
Copier après la connexion

Recommandations associées :

a:active plus animation le clic n'est pas valide Solution

css3 cliquez pour afficher l'effet d'entraînement

JS cliquez sur le lien pour basculer vers l'affichage de la méthode de mise en œuvre du contenu caché

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!