function FastClickEvent(handler){
var fastclick = {
handler : handler,
bind : function(query){
var targetList = document.querySelectorAll(query);
for(var i=0,len=targetList.length;i<len;i++)
{
targetList[i].addEventListener('touchstart',handleEvent);
targetList[i].addEventListener('touchend',handleEvent);
}
},
unbind : function(query){
var targetList = document.querySelectorAll(query);
for(var i=0,len=targetList.length;i<len;i++)
{
targetList[i].removeEventListener('touchstart',handleEvent);
targetList[i].removeEventListener('touchend',handleEvent);
}
}
}
var touchX = 0 ,touchY = 0;
function handleEvent(event){
switch(event.type)
{
case 'touchstart':
touchX = event.touches[0].clientX;
touchY = event.touches[0].clientY;
break;
case 'touchend':
var x = event.changedTouches[0].clientX;
var y = event.changedTouches[0].clientY;
if(Math.abs(touchX-x)<5||Math.abs(touchY-y)<5)
fastclick.handler(event);
break;
}
};
return fastclick;
};
var handler = function(event){
console.log(event.target.id+" fastclicked");
}
var fastClick = new FastClickEvent(handler);
fastClick.bind("div");
function EventTarget(){
this.handlers = {};
}
EventTarget.prototype = {
constructor: EventTarget,
addHandler : function(type,handler){
if(typeof this.handlers[type] == "undefined"){
this.handlers[type]=[];
}
this.handlers[type].push(handler);
},
fire : function(event){
if(!event.target){
event.target = this;
}
if(this.handlers[event.type] instanceof Array){
var handlers = this.handlers[event.type];
for(var i=0,len=handlers.length;i<len;i++){
handlers[i](event);
}
}
},
removeHandler : function(type,handler){
if(this.handlers[type] instanceof Array){
var handlers = this.handlers[type];
for(var i=0,len=handler.length;i<len;i++){
if(handlers[i]==handler){
break;
}
}
handlers.splice(i,1);
}
}
}
var FastClick = function(){
var fastclick = new EventTarget(),
touchX = 0 ,
touchY = 0;
function handleEvent(event){
switch(event.type)
{
case 'touchstart':
touchX = event.touches[0].clientX;
touchY = event.touches[0].clientY;
break;
case 'touchend':
var x = event.changedTouches[0].clientX;
var y = event.changedTouches[0].clientY;
if(Math.abs(touchX-x)<5||Math.abs(touchY-y)<5)
fastclick.fire({type:'fastclick',target:event.target});
break;
}
};
fastclick.bind = function(query)
{
var targetList = document.querySelectorAll(query);
for(var i=0,len=targetList.length;i<len;i++)
{
targetList[i].addEventListener('touchstart',handleEvent);
targetList[i].addEventListener('touchend',handleEvent);
}
}
Fastclick.unbind = function(query){
var targetList = document.querySelectorAll(query);
for(var i=0,len=targetList.length;i<len;i++)
{
targetList[i].removeEventListener('touchstart',handleEvent);
targetList[i].removeEventListener('touchend',handleEvent);
}
}
return fastclick;
}();
FastClick.bind("div");
FastClick.addHandler(handler1);
FastClick.addHandler(handler2);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有