摘自知乎 正常有意义的用户操作不会在500毫秒内连续触发两次tap事件,如果发现两次tap事件的时间间隔不大于500毫秒则阻止第二次tap事件 (function(){ var Interval_min=500; var lastCalledTime=(new Date()).getTime(); function throttle(handler){ return function(){ var curTime=(new Date()).getTime(); if(curTime-lastCalledTime>Interval_min){ lastCalledTime=curTime; handler.apply(this,arguments) } } } var oldOn=$.fn.on; $.fn.on=function(evt){ if(evt==='tap'){ var args=Array.prototype.slice.call(arguments); var handlerIndex; for(var i=0;i<args.length;i++){ if(typeof args[i]==='function'){ handlerIndex=i; break; } } args[handlerIndex]=throttle(args[handlerIndex]); this.on('click',function(e){ e.preventDefault(); }); return oldOn.apply(this,args); } return oldOn.apply(this,arguments) } })()