要在touchstart事件外部访问这些变量,在声明变量时就要确保它们在全局作用域中。以下是一种方法:
- var startX = 0;
- var startY = 0;
- var X = 0;
- var Y = 0;
- var div = document.querySelector("div");
- div.addEventListener("touchstart", function (e) {
- startX = e.targetTouches.pageX;
- startY = e.targetTouches.pageY;
- X = this.offsetLeft;
- Y = this.offsetTop;
- });
- // 在touchstart事件外部访问变量的值
- console.log(startX);
- console.log(startY);
- console.log(X);
- console.log(Y);
- div.addEventListener("touchmove", function (e) {
- var moveX = e.targetTouches.pageX - startX;
- var moveY = e.targetTouches.pageY - startY;
- this.style.left = X + moveX + "px";
- this.style.top = Y + moveY + "px";
- });
复制代码
现在你可以在touchstart事件外部访问这些变量的值,并且在touchstart事件内部赋值给它们。注意,将变量声明在全局作用域中可能会带来其他问题,因此应尽量避免过多使用全局变量。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。