15

当您有一些可点击的内容<a>时,<input>或者<area>在此之前您有一个具有更大 z-index 的绝对定位元素,则存在“点击”的错误行为。
我点击可点击元素位于前面元素后面的区域。在其他浏览器中,正确的行为是点击不通过前面的元素。但只有在 Android 浏览器中,您才能单击前面的元素并激活后面的元素。这是一个已知的错误,您无法避免。它甚至在较新的版本中(我在官方 Android 模拟器中测试 2.3.3)。

一些论坛中描述了一些解决方法,但没有一个对我有用。

  • 我试图在前后之间放置一个<iframe>或一个<a>
  • 我试图更改 DOM,所以浏览器状态可能已刷新
  • 我试图让后面的元素也被定位没有工作

我对图像地图的区域元素特别有问题。

有没有人遇到同样的问题并设法解决它?我对针对图像映射进行测试的解决方案特别感兴趣。

4

3 回答 3

4

我想知道这里的一些事情。首先,叠加图像和使用图像映射的目的是什么?我看到您包含 jQuery - 您可以使用 jQuery 的悬停事件来更改图像的方向并进行交换吗?附加到图像映射的点击事件,并检查灯箱是否打开。如果是,那么return false;

只是想大声思考。有时,另一种看法可能会有所帮助。

于 2012-01-29T03:08:16.783 回答
2

这是一个蒙住眼睛的快速回复,所以如果我应该进一步扩展/修复它,请告诉我。一般的想法是一个 CSS 类,用于禁用指针交互的悬停和焦点事件。

yourElementClass:focus, yourElementClass:hover {
    pointer-events: none;
}
于 2012-11-26T14:25:48.767 回答
1

实际上,我已经设法通过移动下面的对象以使其不可见来避免它。但是在与您类似的情况下,唯一真正有效的解决方法是管理 jquery 中的所有点击(尤其是后台的点击)并根据需要绑定/取消绑定点击事件。还有一些东西可以帮助某些版本/手机(但不解决问题)

  • 以上项目有背景:rgba(0,0,0,0.1);
  • 您应该将 gif 或 png 作为上述元素的背景(以及作为第 1 点的背景颜色)
  • 使用 thouchstart 而不是 click 作为绑定事件有时会有所帮助。

android/browser 的实际版本不受此错误的影响(或者至少它从未发生在我身上)但很高兴知道受影响的版本。如果有人有清单。

于 2015-09-08T07:01:43.737 回答