js前端限制只提交一次,做了限制,快速点击还是不生效,是不是因为 click 300ms 延迟问题

js前端,限制只触发提交一次。使用了:

$('#demo').click(function(){

    var _self = $(this);    


    // 已加载过,不再次请求

    if(_self.hasClass('clicked')){

        return false;

    }

    _self.addClass('clicked');


    // 执行其他逻辑

});


发现点击特别快的时候,并不能限制住!

问题:

    是不是 'click' 事件的 '300ms' 的延迟问题?,程序还没执行??


两次 'click' 事件的截图:

https://img2.mukewang.com/5ca43ecd00018e1208000160.jpg

后记:

单独在html文件测试了下,是没有问题的,别误导了其他人!
原因可能是我代码了混用了其他插件,iscroll.js

https://img2.mukewang.com/5ca43ed90001e81005810415.jpg

展示效果:

https://img2.mukewang.com/5ca43edc00019a7105830118.jpg

多个状态滚动

大家要实现这个效果,可以记得 『iscroll』插件!!


12345678_0001
浏览 1149回答 10
10回答

慕无忌1623718

应该是addClass,你可以换一个true/false的flag试试。如果你只是想触发一次,可以用one。

慕妹3146593

或者用局域变量而不是class来标示状态

红颜莎娜

提供一个绕过去的方案,用户点击之后 弄一个 加载层

慕侠2389804

我们的解决方案是增加蒙版层. 点击的时候弹出 正在加载的那个东东

慕尼黑8549860

可以了解下函数节流 和函数防抖!!!!

莫回无

弄个 flag或者 $().one()都可以解决吧不过有没有可能是你的js 加载了2次

一只名叫tom的猫

用标志判断阻止,点击再怎么快也快不过js执行啊。。。

浮云间

问题虽然解决了,不过我还是建议你使用一个flag:true/false来控制点击
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript