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 上不触发的主要内容,如果未能解决你的问题,请参考以下文章
Window.click 事件不会在 IOS Safari 上触发 - 仅限 JavaScript
Cordova/Phonegap 通过 JavaScript inappbrowser 打印