gpt4 book ai didi

javascript - 如何绑定(bind) Mousedown 和 Touchstart,但不响应两者?安卓、jQuery

转载 作者:IT王子 更新时间:2023-10-28 23:59:54 25 4
gpt4 key购买 nike

在一个也可以在移动设备上查看的网站上工作,并且需要在 touchstart 和 mousedown 上绑定(bind)一个操作。

看起来像这样

 $("#roll").bind("mousedown touchstart", function(event){

someAction();

它在 Iphone 上运行良好,但在 Android 上它响应两次。

event.stopPropagation();
event.preventDefault();

添加此代码修复了 Android Chrome 的问题,但不适用于 Android 默认浏览器。还有其他可以解决所有android问题的技巧吗?

最佳答案

element.on('touchstart mousedown', function(e) {
e.preventDefault();
someAction();
});

preventDefault 取消事件,as per specs

您会获得 touchstart,但一旦您取消它,您将不再获得 mousedown。与接受的答案相反,您不需要调用 stopPropagation ,除非它是您需要的。即使取消,该事件也会正常传播。浏览器会忽略它,但你的钩子(Hook)仍然可以工作。

Mozilla agrees with me关于这个:

calling preventDefault() on a touchstart or the first touchmove event of a series prevents the corresponding mouse events from firing

编辑:我刚刚又读了一遍问题,你说你已经这样做了,它没有修复 Android 默认浏览器。不确定接受的答案有什么帮助,因为它基本上做同样的事情,只是以更复杂的方式和一个事件传播错误(touchstart 不传播,但 click 传播)

关于javascript - 如何绑定(bind) Mousedown 和 Touchstart,但不响应两者?安卓、jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13655919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com