判断是否连续点击过快
2017-12-01 13:54
591 查看
1.方法一,用数组方法,自己乱想的。但不知道有没有性能问题,因为数组的长度会加大
function clicklikes(){ var clickOriginBox = $(".visit_count_text1"); var clickOrigin = clickOriginBox.find(".visit_good_btn2"); var itemTarget = clickOriginBox.find("ul li"); var arrAcount = []; var oldTime; var timeArr = []; clickOrigin.on("click",function(){ oldTime = new Date().getTime(); timeArr.push(oldTime); //每次时间push入数组中,然后比较数组最后两个值的差 var timeBucket = timeArr[timeArr.length-1] - timeArr[timeArr.length-2]; //时间差 if(timeBucket > 1000){ console.log("正常点击") }else{ if(isNaN(timeBucket)){ console.log("第一次点击"); }else{ console.log("你点击太快了") } } }) }
方法二,时间差,比较合理的方法
function clicklikes(){ var clickOriginBox = $(".visit_count_text1"); var clickOrigin = clickOriginBox.find(".visit_good_btn2"); var itemTarget = clickOriginBox.find("ul .li5"); var count = 0; //点击次数 var firstTime = 0; //第一次点击时间 var secondTime = 0; //第二次点击时间 var timeBucket = 0; //两次点击时间差 var flag = true; //判断是第几次点击的状态 clickOrigin.on("click",moreClick); function moreClick(){ var date = new Date(); //点击后首先获取当前时间 var seconds = date.getTime(); //获取毫秒数 if(flag){ //前次点击 firstTime = seconds; //前次点击时间 flag = false; }else{ secondTime = seconds; //时间赋给后次点击 flag = true; } timeBucket = Math.abs(secondTime - firstTime); //时间差 // console.log(firstTime); // console.log(secondTime); if(secondTime == 0){ //如果是第一次点击,则执行以下代码 count++; validClick(count) }else{ if(timeBucket > 1000){ //如果两次点击间隔大于5秒时; count++; //正常有效执行加1 validClick(count); }else{ console.log("你他妈点击太快,赶去投胎啊!"); //如果两次点击间隔小于1秒,则执行以下代码 } } } function validClick(num){ itemTarget.find("i").eq(0).text(num); console.log("第" + count + "有效次点击!"); } }
方法三,设置相邻两次点击的时间,比如点击一次后,3秒后才再能点击
function clicklikes(){ var clickOriginBox = $(".visit_count_text1"); var clickOrigin = clickOriginBox.find(".visit_good_btn2"); var itemTarget = clickOriginBox.find(".li5"); var count = 0; //用来存储间隔时间 var total = 0; //有效点击次数 var flag = null; //用来存储定时器函数的返回值 function done(){ //被定时器函数不断的调用,来对count进行递减。 if(count == 0){ //如果count == 0,则停止定时器函数的执行 clearInterval(flag) console.log("可以点击") }else{ //如果不等0,则减1操作 count = count - 1; console.log("还有"+ count + "秒才可以点击") } } clickOrigin.on("click",function(){ clearInterval(flag); if(count == 0){ count = 3; //设置10s可点击一次 itemTarget.find("i").eq(0).text(total++); flag = setInterval(done,1000); //点击完后又执行done()函数 }else{ //如果count不等于0,则 clearInterval(flag); console.log("还需要" + count + "秒才能点击!") flag = setInterval(done,1000); } }) }
相关文章推荐
- iOS开发有用代码(有判断邮箱格式是否正确的代码、图片压缩、亲测可用的图片上传代码和实现点击图片进行跳转的代码等。)
- jquery判断checkbox是否选中,选中即可点击button否则不可点
- 判断一个正整数是否可以由连续正整数求和而来
- 判断这5个数值是否连续相邻
- 点击页面判断是否安装app并打开,否则跳转app store的方法
- iOS 开发之 点击tabbarItem添加是否跳转登录页面判断
- 用java判断一个int数组是否连续
- 使用Glide实现在非WiFi环境手动点击下载图片(判断Glide是否缓存了图片)
- 点击页面判断是否安装app并打开,否则跳转app store的方法
- ASP.NET 判断是否是连续的数字(可重复,但必须是连续的数字)
- Unity用坐标来判断是否点击在UI上,并调用
- 判断字符串中的数字是否相同,连续
- 判断数组中的数字是否连续相邻
- #region 判断datagrid是否点击的数据行
- CtrlList判断点击的是否为CheckBox
- 判断一个数是否能分解为某个连续正整数序列之和
- 如何判断是否点击弹窗Dialog外部区域
- 当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻
- 判断一个整数x是否可以表示成n(n>=2)个连续正整数的和
- iOS 判断当前APP是否开启定位服务,未开通点击确定进入设置里进行设置