【问题标题】:Polymer 1.0 Unable to stop on-tap event propagationPolymer 1.0 无法停止点击事件传播
【发布时间】:2015-11-20 07:44:01
【问题描述】:

我有一个带有点击功能的纸质按钮,可以打开一个纸质对话框,其中包含一个“接受”纸质按钮,点击后会关闭它。

我遇到的问题是,如果取决于我的屏幕分辨率,并且对话框的“接受”按钮位于打开对话框的初始按钮上方,单击时,对话框会打开和关闭。我假设两个点击事件都被触发。

我已经尝试了这两种方法,但它们似乎没有帮助。

event.cancelBubble = true;
event.stopPropagation();

【问题讨论】:

标签: events polymer polymer-1.0


【解决方案1】:

问题是电容屏甚至鼠标可以在几毫秒内在同一点产生多个点击事件。

  • 鼠标因为高电压和低电压(逻辑 1 和 0)的快速变化产生交流信号,如果条件允许,它可以在电容器(可以是空气之间的按钮两个接触器)上跳槽匹配。但是 onclick 事件已经捕获了这种情况,您不需要做任何事情来解决它。

  • 电容式屏幕是电容器,只需滚动手指即可触发多次点击事件,因为您的皮肤具有不同的绝缘深度,并且在某些情况下难以标记点击开始和结束。

这个物理问题应该由平台解决,但目前并不是在所有情况下都存在(但大多数设备都在过滤这个问题)。我通常用一个透明的覆盖元素来解决这个问题,它可以在一段时间内捕捉指针事件,这样我就可以捕捉按钮或电容屏的“prelling”几毫秒。

如果 10-20 毫秒对您来说足够了,那么在您的点击功能中使用 requestAnimationFrame 等待一帧,然后显示对话框。便宜的伎俩,但它可以做到,但最终你可以等待修复超时来显示对话框,因为你有 100 毫秒来响应用户交互。

您无法通过操作浏览器事件选项来解决此问题,因为据我所知,您无法选择在下一个相同事件发生之前需要经过多少时间。但是,如果您等待一帧,则可能会在事件之间添加延迟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多