Javascript “的精度”;点击";iPad桌面单元格上的事件

Javascript “的精度”;点击";iPad桌面单元格上的事件,javascript,ipad,jquery-datatables,Javascript,Ipad,Jquery Datatables,TL;DR:“点击”监听器对于表格单元格(td)和标题(th)来说并不准确,在使用mobile Safari轻触iPad2时,它似乎在单元格边界之外监听。这是一个已知的问题,是否有解决方法 非常具体的问题,并且没有示例代码(没有必要)。希望有人发现了这个问题,并解决了这个问题之前 我有一个使用DataTables.net和jQuery UI构建的表。这应该是偶然的,但无论如何我想提一提。该表监听许多不同元素上的点击事件(我相信mobilesafari只是简单地翻译为点击),包括行标题(用于排序

TL;DR:“点击”监听器对于表格单元格(td)和标题(th)来说并不准确,在使用mobile Safari轻触iPad2时,它似乎在单元格边界之外监听。这是一个已知的问题,是否有解决方法


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

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

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

在实际数据的顶行中,如果我点击单元格上半部分的任何位置,它实际上会使侦听器在行标题中点击。我放大到一个可笑的级别,这样我就知道我没有意外地轻触标题,并且我已经确认轻触完全发生在表格单元格中,而不是上面的标题

有人知道是否有一个元属性或一些CSS,甚至JavaScript解决了这种精度的不足吗?至少在我点击单元格的一半时间里,它实际上触发了列排序(从重影标题点击)


我唯一能想到的解决办法是将每个单元格的内容包装成一个div或span,将它们垫离单元格的边缘一点,并希望通过这种方式人为地减少抽头目标区域。

如果x,y坐标在表外,那么您不能简单地忽略它吗


如果单击位于表内,并且x、y坐标错误,则可能是缩放问题或错误。

这似乎是移动平台上的常见问题(不仅仅是表)。在过去,我通过监听本机触控事件(例如,
ontouchstart
ontouchend
)或使用类似于使用事件处理程序并将其绑定到
tap()
而不是
click()
)的库来解决这个问题。谢谢。我听说jQueryMobile和jQueryUI之间存在冲突,所以我不想走这条路。看看这里的答案:看看是否有帮助。列标题和单元格侦听器是否同时被触发?如果它们都被触发,则可能需要执行一项检查,以确保抽头位置位于元件内部。