如何修复移动浏览器上 touchend 事件不触发的bug
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修复移动浏览器上 touchend 事件不触发的bug相关的知识,希望对你有一定的参考价值。
1、很简单, 只要在 touchstart 的时候调用下 event.preventDefault(), 即可让其他事件都正常被触发了!2、如何修复移动浏览器上 touchend 事件不触发的bug:
https://www.douban.com/note/425950082/ 参考技术A 直接升级浏览器最新的版本即可解决。
如何处理由滚动和点击列表项触发的“touchend”事件?
【中文标题】如何处理由滚动和点击列表项触发的“touchend”事件?【英文标题】:How can I handle a `touchend` event triggered by scrolling vs. tapping on a list item? 【发布时间】:2012-11-24 09:38:00 【问题描述】:我有一个带有div
s 的简单列表(在 iOS 上)。我在列表元素上使用touchend
事件来执行操作。我这样做是因为click
事件有大约 500 毫秒的延迟,这让 UI 感觉迟缓。
但是,当我滚动列表时,touchend
事件也会触发。有什么办法可以防止touchend
在我滚动列表时触发,或者检测它是否是由滚动列表引起的?欢迎使用 jQuery 解决方案。
【问题讨论】:
很难说出你真正想要什么。您确实意识到,为了滚动,您需要滑动屏幕,这将触发touchstart
/touchmove
/touchend
事件,对吧?
正确,我知道这些事件被调用。如果只使用点击事件,它就可以工作,但会出现延迟问题(大约 500 毫秒,直到点击事件被触发)。
现在我很困惑。您正在开发什么类型的应用程序?它是桌面网络应用程序还是移动网站?最好提供更多细节,也许还有一些演示代码(一个 jsfiddle 就可以了)。
你能把你试过的代码贴在这里吗?
试过tap
(jQuery) 事件?
【参考方案1】:
我也有同样的问题,我用 tappy 插件解决了:tappy plugin
只需使用“点击”事件。
【讨论】:
以上是关于如何修复移动浏览器上 touchend 事件不触发的bug的主要内容,如果未能解决你的问题,请参考以下文章
移动端android,长按事件时,touchend事件不触发的解决方法