重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍“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防止重复点击”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!