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); } }) }