window.click 在 iPad 版 Safari 上不触发

Posted

技术标签:

【中文标题】window.click 在 iPad 版 Safari 上不触发【英文标题】:window.click does not fire on Safari for iPad 【发布时间】:2012-11-12 15:11:07 【问题描述】:

此代码在桌面浏览器中运行良好:

$(window).click(function() ...);

但在 iPad 上的 Safari 中,它根本不会触发。这不支持吗?当有人触摸浏览器窗口中的某处时,正确的通知方式是什么?

【问题讨论】:

【参考方案1】:

JQuery UI 支持设备的touch。 .您可以在同一组事件上绑定单击和触摸侦听器。

$(window).bind("click touchstart", function()...);

【讨论】:

感谢您的提示。顺便说一句,该事件似乎是“touchstart”而不是“touch”。我已经编辑了答案以反映正确的代码。【参考方案2】:

这样试试

var clickOrTap = ( typeof document.body.ontouchend === "undefined" ) ? 'click' : 'touchend';
$( "body" ).on( clickOrTap, function()  ...  );

它会检查设备是否有touchend 事件,如果没有则表示您在桌面上,因此侦听器将等待click。如果它定义了,那么你就在一个触摸设备上,你可以监听触摸事件。

【讨论】:

希望我能将两者都标记为答案,因为您也提供了帮助(尤其是“touchstart”与“touch”),但我认为“bind”语法更简洁。

以上是关于window.click 在 iPad 版 Safari 上不触发的主要内容,如果未能解决你的问题,请参考以下文章

iPad 和 iPhone 的样式输入按钮

Window.click 事件不会在 IOS Safari 上触发 - 仅限 JavaScript

Cordova/Phonegap 通过 JavaScript inappbrowser 打印

Android_存储访问框架SAF

在 Android 中从 File Api 迁移到 Storage Access Framework (SAF)

使用 SAF(存储访问框架)的 Android SD 卡写入权限