用jq绑定了touchstart事件,但是当触发了事件后,事件对象的offsetX属性值为undefined,请问如何解决

我辈岂是一凡人 2017-11-03 03:14:09
$(".touchArea").on('touchstart',function(e){
var x=e.offsetX;
var y=e.offsetY;
console.log(x);
console.log(y);
});
...全文
1397 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 11 楼 jslang 的回复:
考虑到滚动条,应该是 e.originalEvent.touches[0].pageY - $(this).offset().top 如页面不会出现滚动条可以无视
嗯嗯,没错!
  • 打赏
  • 举报
回复
解决了!


  • 打赏
  • 举报
回复
我是想通过touchstart事件获取到鼠标在元素内的坐标,而这个只有offset属性才可以获取吧?恰好offset属性touchstart不识别
  • 打赏
  • 举报
回复
引用 7 楼 chen_2016_web 的回复:
上面已经说得很清楚了,jQuery的手势事件和原生JS的不太一样,输出其event事件看看就知道了。
输出了,就在6L,但是里面没有位置属性
天际的海浪 2017-11-06
  • 打赏
  • 举报
回复
考虑到滚动条,应该是 e.originalEvent.touches[0].pageY - $(this).offset().top 如页面不会出现滚动条可以无视
chen_2016_web 2017-11-05
  • 打赏
  • 举报
回复
上面已经说得很清楚了,jQuery的手势事件和原生JS的不太一样,输出其event事件看看就知道了。
  • 打赏
  • 举报
回复
引用 5 楼 jslang 的回复:
其实这类问题,你用console.log(e);输出下对象,看看对象都有什么属性


这是console.log(e),里面有offset属性,jquery的事件对象中获取手势坐标是有offsetX的,但就是touchstart事件取不到offset的值,click是可以取到的
天际的海浪 2017-11-03
  • 打赏
  • 举报
回复
其实这类问题,你用console.log(e);输出下对象,看看对象都有什么属性
天际的海浪 2017-11-03
  • 打赏
  • 举报
回复
更正 jquery的事件对象中获取手势坐标是 e.originalEvent.touches[0].pageX 并且没有offsetX,只有clientX,pageX,screenX
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
e.touches[0].offsetX;



不行,有错,我加上originalEvent后虽然不报错了,但是还没undefined,
以前咱们论坛上有个帖子,也是这种问题,不过针对offset不行
http://bbs.csdn.net/topics/390429202
天际的海浪 2017-11-03
  • 打赏
  • 举报
回复
e.touches[0].offsetX;
  • 打赏
  • 举报
回复
人呐?

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧