2017-08-11 45 views
0

我有一個事件來檢測鼠標或觸摸,並使用setTimeout將此事件發送到另一個函數。在另一個函數中檢測mousedown和touchstart pageX

我沒有問題檢測鼠標或觸摸事件,我不能做的是發送觸摸事件的功能。

$(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); 
    } 
} 

mousedown按預期工作,touchstart返回'undefined'。

我想這些事件讓pageX屬性

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

謝謝!

回答

1

首先, if(e.pageX==='undefined'){這是不正確的。更好if (typeof e.pageX == 'undefined') {如果你需要這個條件,更好if (e.type == 'touchstart') {

相關問題