成都网站建设设计

将想法与焦点和您一起共享

CSS如何利用pointer-events防止重复点击

这篇文章主要介绍“CSS如何利用pointer-events防止重复点击”,在日常操作中,相信很多人在CSS如何利用pointer-events防止重复点击问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS如何利用pointer-events防止重复点击”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都网站设计、海拉尔网络推广、小程序定制开发、海拉尔网络营销、海拉尔企业策划、海拉尔品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供海拉尔建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

前言

我们在前端总会遇到重复点击的问题,由于网络的原因,用户不能及时得到反馈,就很可能会选择再点击一次,

所以这个时候就会向后端发送两次重复的请求,这样就很可能会导致严重的问题,尤其是在发 post的时候,就可能会增加两条重复的数据。

之前我一般遇到这种情况都会在 js 的请求前做一个 canRequest 变量,由于请求是异步的,所以在请求开始后我就会将该变量设置为 false, 当请求结束后,无论成功还是失败都要将该变量设置为 true, 简单代码如下:

var canRequest = true
function postData () {
  if (!canRequest) return
  fetch(url)
  .then(res => {
    canRequest = true  
  })
  .catch(e => {
    canRequest = true
  })
  canRequest = false
}

这样做并没有什么毛病,不过考虑到一般点击后还需要将按钮置灰,所以我找到了个从 css 层面上就阻止重复点击的方式。

下面是个获取短信验证码的示例:

获取验证码
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;
}
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)
}

到此,关于“CSS如何利用pointer-events防止重复点击”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


当前名称:CSS如何利用pointer-events防止重复点击
文章来源:http://chengdu.cdxwcx.cn/article/ihpoge.html

其他资讯