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

如果我删除 in 中的评论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 回答