Javascript 停止Touchscroll也会阻止单击链接

Javascript 停止Touchscroll也会阻止单击链接,javascript,html,touchscreen,preventdefault,vertical-scrolling,Javascript,Html,Touchscreen,Preventdefault,Vertical Scrolling,我得到了这段代码,当有人试图触摸移动菜单中的滚动时,应该禁止整个页面滚动。不幸的是,它还阻止触摸点击链接(仅在触摸屏上)。我需要确保链接仍然可以点击 (function(){ function isTouchDevice(){ try{ document.createEvent("TouchEvent"); return true; }catch(e){ return false; } } function touchScroll(id){ if(isTouchDevice()){ //if t

我得到了这段代码,当有人试图触摸移动菜单中的滚动时,应该禁止整个页面滚动。不幸的是,它还阻止触摸点击链接(仅在触摸屏上)。我需要确保链接仍然可以点击

(function(){
function isTouchDevice(){
try{
document.createEvent("TouchEvent");
return true;
}catch(e){
return false;
}
}
function touchScroll(id){
if(isTouchDevice()){ //if touch events exist...
var el=document.getElementById(id);
var scrollStartPos=0;
document.getElementById(id).addEventListener("touchstart", function(event) {
scrollStartPos=this.scrollTop+event.touches[0].pageY;
event.preventDefault();
},false);
document.getElementById(id).addEventListener("touchmove", function(event) {
this.scrollTop=scrollStartPos-event.touches[0].pageY;
event.preventDefault();
},false);
}
}
//On page load
touchScroll('mainmenu-mobile')
})();
从这里获取代码:


在touchstart事件中,您应该删除event.preventDefault()行。 这将阻止单击链接

不用说,您应该在touchmove上保留event.preventDefault(),因为这会阻止滚动