Js如何移除touchwipe监听的事件?

kinghome 2013-07-09 03:34:18

(function(a){
a.fn.touchwipe=function(c){
var b={
clearTouchWipe:false,
drag:false,
min_move_x:20,
min_move_y:20,
wipeLeft:function(){/*向左滑动*/},
wipeRight:function(){/*向右滑动*/},
wipeUp:function(){/*向上滑动*/},
wipeDown:function(){/*向下滑动*/},
wipe:function(){/*点击*/},
wipehold:function(){/*触摸保持*/},
wipeDrag:function(x,y){/*拖动*/},
preventDefaultEvents:true
};
if(c){a.extend(b,c)};
this.each(function(){
var h,g,j=false,i=false,e;
var supportTouch = "ontouchstart" in document.documentElement;
var moveEvent = supportTouch ? "touchmove" : "mousemove",
startEvent = supportTouch ? "touchstart" : "mousedown",
endEvent = supportTouch ? "touchend" : "mouseup"


/* 移除 touchmove 监听 */
function m(){
this.removeEventListener(moveEvent,d);
h=null;
j=false;
clearTimeout(e)
};

/* 事件处理方法 */
function d(q){
if(b.preventDefaultEvents){
q.preventDefault()
};
if(j){
var n = supportTouch ? q.touches[0].pageX : q.pageX;
var r = supportTouch ? q.touches[0].pageY : q.pageY;
var p = h-n;
var o = g-r;
if(b.drag){
h = n;
g = r;
clearTimeout(e);
b.wipeDrag(p,o);
}
else{
if(Math.abs(p)>=b.min_move_x){
m();
if(p>0){b.wipeLeft()}
else{b.wipeRight()}
}
else{
if(Math.abs(o)>=b.min_move_y){
m();
if(o>0){b.wipeUp()}
else{b.wipeDown()}
}
}
}
}
};

/*wipe 处理方法*/
function k(){clearTimeout(e);if(!i&&j){b.wipe()};i=false;j=false;};
/*wipehold 处理方法*/
function l(){i=true;b.wipehold()};

function f(n){
//if(n.touches.length==1){
h = supportTouch ? n.touches[0].pageX : n.pageX;
g = supportTouch ? n.touches[0].pageY : n.pageY;
j=true;
this.addEventListener(moveEvent,d,false);
e=setTimeout(l,750)
//}
};

//if("ontouchstart"in document.documentElement){
if(b.clearTouchWipe){
this.removeEventListener(startEvent,f,false);
this.removeEventListener(endEvent,k,false);
}else{
this.addEventListener(startEvent,f,false);
this.addEventListener(endEvent,k,false)
}
//}
});
return this
};
})(jQuery);

//添加事件
$("#pageRender").touchwipe({
min_move_x:80,
wipeLeft:function(){$("label[data-link=next]","#header").click();},
wipeRight:function(){$("label[data-link=back]","#header").click();}
});



我想在 使用其他控件 前把移除 #pageRender上的事件
怎么做?
...全文
103 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧