4

私はtoucheventsjsでいじっています。Eclipse の logcat でこのエラーが発生しました。

document.getElementById("squareBracket").
    addEventListener("touchmove", touchHandler, false);
document.getElementById("squareBracket").
    addEventListener("touchend", touchHandler, false);

function touchHandler(e) {
 if (e.type == "touchstart") {
 alert("You touched the screen!");
  } else if (e.type == "touchmove") {
 // alert(e.changedTouches[0].pageX);
 // alert(e.changedTouches[0].pageY);
 } else if (e.type == "touchend" || e.type == "touchcancel") {
  alert('X :' + e.targetTouches[0].pageX); 
  alert('Y :' + e.targetTouches[0].pageY);
}
}

のコメントを削除するiftouchmove、座標がポップアップします。ただし、コメントされている場合、logcat にエラーが表示されます。

4

1 に答える 1

5

ここで、targetTouches、changedTouches、および touches の違いを理解し始める必要があります: e.touches、e.targetTouches、および e.changedTouches のバリエーション

あなたの場合、touchendまたはtouchcancelの瞬間にtargetTouchesリストは空であり、情報はchangedTouchesに残ります。

コードを次のように変更します。

alert('X :' + e.changedTouches[0].pageX); 
alert('Y :' + e.changedTouches[0].pageY);

トリックを行う必要があります。

于 2014-05-13T08:09:22.147 に答える