国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

CSS利用pointer-events防止重復點擊的方法實例

2024-07-11 08:58:30
字體:
來源:轉載
供稿:網友

前言

我們在前端總會遇到重復點擊的問題,由于網絡的原因,用戶不能及時得到反饋,就很可能會選擇再點擊一次,

所以這個時候就會向后端發送兩次重復的請求,這樣就很可能會導致嚴重的問題,尤其是在發 post的時候,就可能會增加兩條重復的數據。

之前我一般遇到這種情況都會在 js 的請求前做一個 canRequest 變量,由于請求是異步的,所以在請求開始后我就會將該變量設置為 false, 當請求結束后,無論成功還是失敗都要將該變量設置為 true, 簡單代碼如下:

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

這樣做并沒有什么毛病,不過考慮到一般點擊后還需要將按鈕置灰,所以我找到了個從 css 層面上就阻止重復點擊的方式。

下面是個獲取短信驗證碼的示例:

<div id="count">獲取驗證碼</div>
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.textContentcount.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)}

注意: 對于  pointer-events 不了解的請查看這篇文章

demo鏈接:點擊這里

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大洼县| 高陵县| 清流县| 叶城县| 长沙县| 汉川市| 玛纳斯县| 宁波市| 托克逊县| 临江市| 乐至县| 湖北省| 乌恰县| 赫章县| 石屏县| 峨眉山市| 惠州市| 兰溪市| 高邮市| 中超| 华亭县| 湛江市| 沿河| 许昌县| 达尔| 邯郸市| 五莲县| 崇州市| 保康县| 龙井市| 苍梧县| 温州市| 澎湖县| 扎囊县| 太白县| 阿拉善右旗| 兰溪市| 兰西县| 栾川县| 千阳县| 泸州市|