0

マウスやタッチを検出し、このイベントをsetTimeoutを使用して別の機能に送信するイベントがあります。別の機能でマウスを検出して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'を返します。

私は[0]

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

    • e.changedTouchesを取得するために、これらのイベントを試してみました
    • e.touches [0] .pageX
    • e.pageX

    ありがとうございました!

  • 答えて

    1

    まず、 if(e.pageX==='undefined'){が正しくありません。その条件が必要ならば、より良いif (typeof e.pageX == 'undefined') {が良いでしょう。より良いのはif (e.type == 'touchstart') {です。

    関連する問題