我有一个事件来检测鼠标或触摸,并使用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') {
更好。