分析一段长摁事件代码

发布时间:2021-06-25 16:33
小编推荐

分享一段自己用的元素长摁事件代码,非常好用支持安卓、IOS



	var longPress = function(dom,time,callback){
		try{
			time = parseFloat(time)>1?parseFloat(time)*1000:1000;
			var elem =document.querySelector(dom);
			if(elem){
				var startTime = 0,touch = false,ctime;
				elem.addEventListener("touchstart",function(e){
					startTime = e.timeStamp
					touch = true;
					ctime = setInterval(function(){
						startTime += 500;
						if( startTime>time && touch == true ){
							typeof(callback) == 'function' && callback();
							startTime = 0;
							touch = false;
							clearInterval(ctime);
						}
					},500);
				});
				elem.addEventListener("touchend",function(e){
					if((e.timeStamp - startTime)>time && touch == true ){
						typeof(callback) == 'function' && callback();
						startTime = 0;
						touch = false;
					}
					clearInterval(ctime);
				});
				elem.addEventListener("touchmove",function(e){
					touch = false;
				});
				return elem;
			}
		}catch(err){
		
		}
		return false;
	}



使用方法:

/**
 * @longPress
 * param1 # 元素【ID、类名、元素名】
 * param2 # 长摁N秒执行回调
 * param3 # 回调
 * **/

longPress("body",2,function(){
	// OK
});


禁止任何人转载!