【问题标题】:Precision of "click" events on table cells for iPadiPad 表格单元格上“点击”事件的精度
【发布时间】:2013-03-08 21:23:27
【问题描述】:

TL;DR:“点击”侦听器对于表格单元格 (td) 和标题 (th) 不准确,在带有移动 Safari 的 iPad 2 上点击时似乎在单元格边界之外进行侦听。这是一个已知问题吗?是否有解决方法?


非常具体的问题,没有示例代码(没有必要)。希望有人发现这个问题并且之前已经解决了这个问题!

我有一个使用 DataTables.net 和 jQuery UI 构建的表。这应该是偶然的,但我还是想提一下。该表侦听许多不同元素上的点击事件(我相信移动 Safari 将其简单地翻译为点击),包括行标题(用于排序)和某些单元格内容。

在 Mac(连接了 iPad)上使用 Inspector 我可以清楚地看到在填充、边框、边距甚至“可见性:隐藏”或类似的内容方面没有意外重叠的元素.此外,它们是具有默认行为的表格单元格;不是表格单元格的模拟。

在实际数据的第一行中,如果我点击单元格上半部分的任何位置,它实际上会触发侦听器以获取行标题中的点击。我放大到一个可笑的水平,这样我就知道我没有不小心轻推标题,并且我已经确认点击完全发生在表格单元格内,而不是上面的标题。

有没有人知道是否有元属性或某些 CSS 甚至 JavaScript 解决方法来解决这种缺乏精度的问题?我点击单元格的至少一半时间实际上是触发列排序(来自幽灵标题点击)。

我能想到的唯一解决方法是将每个单元格的内容包装在一个 div 或 span 中,将它们从单元格的边缘稍微填充一下,并希望通过这种方式人为地减少点击目标区域。

【问题讨论】:

  • 这似乎是跨移动平台的常见问题(不仅仅是表格)。过去,我通过侦听本机触摸事件(例如,ontouchstartontouchend)或使用库(如使用jQuery Mobile 并将事件处理程序与tap() 绑定而不是click())来解决此问题.
  • 谢谢。我听说 jQuery Mobile 和 jQuery UI 之间存在冲突,所以我不想走那条路。在这里查看答案:stackoverflow.com/questions/4755505/… 看看是否有帮助。
  • 列标题和单元格监听器是一起触发的吗?如果它们都被触发,则可能会检查点击位置是否在元素内部。

标签: javascript ipad jquery-datatables


【解决方案1】:

如果 x,y 坐标在表格之外,那你能不直接忽略它吗?

如果点击在表格内,并且 x,y 坐标错误,则可能是缩放问题或错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-11
    • 2012-09-27
    • 2015-09-25
    • 2011-07-31
    • 2011-09-28
    • 2021-02-07
    • 2012-08-16
    • 1970-01-01
    相关资源
    最近更新 更多