鍍金池/ 問(wèn)答/HTML/ js前端限制只提交一次,做了限制,快速點(diǎn)擊還是不生效,是不是因?yàn)?click 3

js前端限制只提交一次,做了限制,快速點(diǎn)擊還是不生效,是不是因?yàn)?click 300ms 延遲問(wèn)題,我的2次觸發(fā)未超過(guò)300ms

js前端,限制只觸發(fā)提交一次。使用了:
$('#demo').click(function(){
    var _self = $(this);    

    // 已加載過(guò),不再次請(qǐng)求
    if(_self.hasClass('clicked')){
        return false;
    }
    _self.addClass('clicked');

    // 執(zhí)行其他邏輯
});

發(fā)現(xiàn)點(diǎn)擊特別快的時(shí)候,并不能限制??!
問(wèn)題:
    是不是 'click' 事件的 '300ms' 的延遲問(wèn)題?,程序還沒(méi)執(zhí)行??

兩次 'click' 事件的截圖:

[圖片]
clipboard.png

后記:

單獨(dú)在html文件測(cè)試了下,是沒(méi)有問(wèn)題的,別誤導(dǎo)了其他人!
原因可能是我代碼了混用了其他插件,iscroll.js

clipboard.png

展示效果:

clipboard.png

多個(gè)狀態(tài)滾動(dòng)

大家要實(shí)現(xiàn)這個(gè)效果,可以記得 『iscroll』插件!!

回答
編輯回答
念舊

為何不用$('#demo').one()

2018年8月3日 15:13
編輯回答
別傷我

可以了解下函數(shù)節(jié)流 和函數(shù)防抖!!!!

2018年7月28日 09:33
編輯回答
心上人

應(yīng)該是addClass,你可以換一個(gè)true/falseflag試試。如果你只是想觸發(fā)一次,可以用one。

2017年10月24日 02:44
編輯回答
葬愛(ài)

弄個(gè) flag或者 $().one()都可以解決吧
不過(guò)有沒(méi)有可能是你的js 加載了2次

2017年9月8日 01:06
編輯回答
維她命

我們的解決方案是增加蒙版層. 點(diǎn)擊的時(shí)候彈出 正在加載的那個(gè)東東

2017年2月16日 15:14
編輯回答
放開(kāi)她

或者用局域變量而不是class來(lái)標(biāo)示狀態(tài)

2018年1月23日 23:06
編輯回答
茍活

提供一個(gè)繞過(guò)去的方案,用戶點(diǎn)擊之后 弄一個(gè) 加載層

2018年5月26日 19:17
編輯回答
尛憇藌

用標(biāo)志判斷阻止,點(diǎn)擊再怎么快也快不過(guò)js執(zhí)行啊。。。

2018年3月31日 18:51
編輯回答
賤人曾

這也有可能你每次執(zhí)行的dom元素不一樣,也就是說(shuō)你的_self可能每次點(diǎn)擊時(shí)的值都不一樣

2017年7月30日 11:48
編輯回答
來(lái)守候

問(wèn)題雖然解決了,不過(guò)我還是建議你使用一個(gè)flag:true/false來(lái)控制點(diǎn)擊

2018年3月17日 02:21