【问题标题】:Click Event Delayed on Safari MobileSafari Mobile 上的单击事件延迟
【发布时间】:2020-09-08 05:30:11
【问题描述】:

这应该很简单,特别是考虑到已经解决了许多类似的问题,但由于某种原因我无法让它工作。

我的页面上有 div 与名为“事物”的类相关联。当用户单击“item”类的元素时,我希望立即删除所有“thing”类的div。它在网络上运行得非常好,但在移动 safari 上却不行。在移动设备上,元素在“点击”之后仍然存在,直到我随后在页面上滑动。一旦我滑动点击后,元素就会被删除。就好像“点击”不被视为“触摸”一样。

根据其他建议的解决方案,我添加了<meta content="width=device-width, user-scalable=no" name="viewport">、“touchstart”事件和html {touch-action: manipulation;} css。

HTML

<div class="thing"></div>

JS

// On click
$(".item").on("click touchstart", function () {
    $(".thing").remove();
});

【问题讨论】:

    标签: html jquery ios iphone safari


    【解决方案1】:

    当用户单击/触摸具有“item”类的元素时,我会通过 ajax 进行 API 调用。我最终利用 ajax 中的成功函数来删除带有“事物”类的元素:

    var success = function (response) {
            $(".thing").remove();
        }
    

    这里最大的问题是,在 API 调用成功返回之前,不会删除类“thing”的元素。当然,我更愿意在观察到单击事件后立即删除元素,但我无法让它在 Safari 移动设备上按预期工作。

    解决方案比等到用户第二次滑动后再移除元素要好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      相关资源
      最近更新 更多