【问题标题】:JS touchmove events that stop triggering.停止触发的 JS touchmove 事件。
【发布时间】:2015-04-28 20:37:07
【问题描述】:

我有一个 webapp 项目,我正在使用一个图形图表来响应 touchstart 和 touchmove 事件。我将事件绑定到覆盖图表画布元素的元素,并且在大多数情况下,一切都按预期工作。

但是,我正在经历一些事件最终停止触发的行为。我看到这至少以两种方式发生:

第一种情况:这一切似乎都是零星的停止(我无法准确地缩小在他们停止之前正在发生的事情)。一切都会在一段时间内正常工作,但最终触摸事件会停止触发。

第二种情况:当我更新应用程序时(删除绑定的元素,将新元素重新附加到 DOM,然后使用相同的事件重新绑定新元素)。在这次更新之后,我得到了一个触发的 touchstar/touchmove。单次触发后,不再触发任何触摸事件。

这是我正在开发的网站:mortgagevista.com

我一生都无法弄清楚发生了什么。我花了几个小时在论坛和 SO 上阅读,但似乎仍然无法弄清楚问题是什么。不幸的是,我什至不知道如何解决问题。我一直在使用 chrome 开发工具中的模拟器重现问题。

这个问题对任何人来说都很熟悉吗?我可能遗漏的触摸事件有什么常见问题或陷阱吗?关于如何最好地解决此问题的任何想法? (对不起,我知道这是一个非常模糊的问题,但我什至不知道如何缩小正在发生的事情的范围)。

【问题讨论】:

    标签: javascript jquery events touch


    【解决方案1】:

    您的活动没有进行到正确的地方。这有两个可能的原因。

    1. 不正确的元素具有焦点。
    2. 未按预期点击不可见的叠加层或类似内容。

    深入研究这些问题,看看是否能找到根本原因。

    祝你好运。

    【讨论】:

    • 嗯,似乎确实是问题的原因。到目前为止,我不知道为什么我会失去注意力,而且我仍然会遇到一些意想不到的行为。我想出的超级“hacky”快速修复是在每次触摸事件之后,我使用 jquery 专注于页面上的第一个输入元素,然后模糊该元素,一切似乎都正常工作。如果我试图简单地关注应该接收事件(或正文或文档)的覆盖元素,它并不能解决问题。
    • 更奇怪的是,如果我尝试使用 Chrome 开发工具的“monitorEvents”功能,当 monitorEvents 功能处于活动状态时,我根本无法重现该问题...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多