【问题标题】:Click events not working on Apple devices单击事件在 Apple 设备上不起作用
【发布时间】:2023-01-12 07:45:48
【问题描述】:

所以我有一个网页,只要你点击一张图片,它就会以更大的形式显示。

代码简单(省略其余代码)

open_image.addEventListener("click", () => open_image());
<div id="click-me">
  <img src="img_test.jpg">
</div>

<div id="bigger-img" style="display: none">
  <img src="img_test.jpg">
</div>

open_image() 函数所做的只是将显示块设置为隐藏图像

这在 PC 和安卓设备上没有问题,但对于 iPad 或 iPhone 等苹果移动设备,点击事件似乎没有被监听或者就像它忽略它一样。

我已经搜索了解决方案,似乎在 CSS 中,属性 cursor: pointer 应该可以工作,但对我来说不是,在将此属性设置为 body 后一直忽略点击事件。

这些苹果设备有什么想法吗?

【问题讨论】:

  • 您不想改用 pointer event 吗?它适用于鼠标、笔和触摸事件。见:"The HTML5 Pointer Events API: Combining touch, mouse, and pen"
  • 您确定不会触发点击事件吗?对我来说,这听起来像是一个 CSS 问题
  • 请发布minimal reproducible example。您可以使用 Stack Snippet 使其可执行。
  • 只需执行 open_image.addEventListener("click", () =&gt; aleret(1)); 来检查它是否触发,css 与 onclick 事件无关,cursor: pointer 会影响当您将鼠标悬停在元素上时呈现的桌面光标 - 如果将其添加到正文中,您将拥有整个光标 pointer (hand)网站
  • 单击事件在苹果移动设备中正确触发,我将尝试指针事件

标签: javascript html css ios events


【解决方案1】:

除了点击事件外,还使用“touchend” https://developer.mozilla.org/en-US/docs/Web/API/Element/touchend_event

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多