检测鼠标按下并在另一个函数上触摸启动页面 X



我有一个事件来检测鼠标或触摸,并使用setTimeout将此事件发送到另一个函数。

我在检测鼠标或触摸事件时没有问题,我不能做的是将触摸事件发送到函数。

$(divst + ' #sortable1').on('touchstart mousedown',function(e){
e.preventDefault();
setTimeout(function(){
StarTrans(e); // <- sending event
},200);
});
function StarTrans(e){
if(e.pageX==='undefined'){ // this does not work
$(dtarget).offset({left:e.changedTouches[0].pageX-33,top:e.changedTouches[0].pageY-58});
$('#titring').html(e.changedTouches[0].pageX + ',' + e.changedTouches[0].pageY);
}else{ // this works
$(dtarget).offset({left:e.pageX-33,top:e.pageY-58});
$('#titring').html(e.pageX + ',' + e.pageY);
}
}

鼠标按下按预期工作,TouchStart 返回"未定义"。

我尝试了这些事件来获取页面X

  • e.changedTouches[0].pageX
  • e.targetTouches[0].pageX
  • e.originalEvent.touches[0].pageX
  • e.touches[0].pageX
  • e.pageX

谢谢!

首先,if(e.pageX==='undefined'){这是不正确的。如果您需要该条件,if (typeof e.pageX == 'undefined') {更好,if (e.type == 'touchstart') {更好。

最新更新