/*封裝tap*/ cc.tap = function(dom,callback){ /* * 要求 沒有觸發 touchmove 事件 * 並且響應速度要比click快 */ if(dom && typeof dom == 'object'){ var isMove = false; var startTime = 0; dom.addEventListener('touchstart',function(e){ //console.log('touchstart'); //console.time('tap');/*記錄tap這個參數現在的時間*/ startTime = Date.now(); }); dom.addEventListener('touchmove',function(e){ //console.log('touchmove'); isMove = true; }); dom.addEventListener('touchend',function(e){ //console.log('touchend'); //console.timeEnd('tap')/*打印tap這個參數距離上一次記錄的時候的時間*/ /*判讀 是否滿足tap 的要求 一般要求tap的響應時間150*/ if(!isMove && (Date.now()-startTime) < 150){ /*調用 callback*/ callback && callback(e); } /*重置 參數*/ isMove = false; startTime = 0; }); } }
這邊進行封裝的原因是click事件有一個延遲