我在js中修改touchevents
。我在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);
}
}
如果我删除
if
中touchmove
中的注释,则弹出坐标。但是,如果有评论,则会显示我的logcat中的错误。 最佳答案
您应该在这里开始了解targetTouches,changedTouches和touches的区别:Variation of e.touches, e.targetTouches and e.changedTouches
对于您而言,在touchend或touchcancel时刻,targetTouches列表为空,并且信息保留在changedTouches中。
将您的代码更改为:
alert('X :' + e.changedTouches[0].pageX);
alert('Y :' + e.changedTouches[0].pageY);
应该可以。