Safari浏览器中的iPad上无法触发window.click事件

4

这段代码在桌面浏览器中运行正常:

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

但是在iPad上的Safari浏览器中,它根本没有触发。这个功能不支持吗?有什么正确的方法可以在某人在浏览器窗口的任何地方点击时得到通知?

2个回答

5

JQuery UI支持设备的touch操作。您可以在同一组事件上绑定点击和触摸监听器。

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

谢谢你的提示。顺便说一下,事件似乎是“touchstart”,而不是“touch”。我已经编辑了答案以反映正确的代码。 - Joshua Frank

4

试着这样做

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

它检查设备是否拥有touchend事件,如果没有,则表示您在桌面上,因此侦听器将等待click。 如果已定义,则表示您在触摸设备上,并且可以侦听触摸事件。


希望我能将两个答案都标记为正确,因为你也提供了帮助(特别是“touchstart”与“touch”),但我认为“bind”语法更加简洁。 - Joshua Frank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接