在iPad上捕获点击DOM / HTML / BODY事件

我正在使用jQuery来检测DOM上的点击 – 或者让我们点击每一次。

$(document).click(function(){ alert("Click :-)"); }); 

这适用于除Safari / iPad之外的所有浏览器。 我也尝试在html或body元素上应用事件 – 没办法。 如何检测iPad / iPhone上的常见点击?

最好的问候,吉姆

正如我在http://www.danwellman.co.uk/fixing-jquery-click-events-for-the-ipad/上找到的那样,您可以测试用户代理并使用touchstart或点击,具体取决于平台

 var ua = navigator.userAgent, event = (ua.match(/iPad/i)) ? "touchstart" : "click"; $(document).on(event, function (ev) { ... }); 

这些答案让我开始朝着正确的方向发展(首先谷歌为“jquery document.on ipad”),所以非常感谢,但是从这个答案中借鉴我将其简化为:

 $(document).on("click touchstart", function (ev) { ... }); 

如果平台(如Android或Windows Phone或其他东西)支持事件泡泡中的click和touchstart,这显然会产生不良结果,所以如果有人知道这让我知道(我将修复我的代码并删除这个答案!: )

我用过这个:

 jQuery(document).on('touchstart',function(event){ //your code here }); 

– 而不是“文档”,你可以绑定到任何DOM对象。

这(来自另一个论坛答案):

 var body = document.getElementsByTagName('body')[0]; if ("ontouchstart" in window) { body.ontouchstart = function(){ //your code here }; }; 

-again,你不必使用’body’你可以通过这种方式为一个对象赋一个变量:

 var dd = document.getElementsByClassName('infoAction')[0]; 

您可以使用touchstart事件。

 $('html').click(function(){ alert("Click :-)"); }); 

这对我有用,我现在测试了。

即使在页面上没有任何内容,也无需点击页面。

您可以将单击侦听器附加到主包装器元素(例如,包含页面中所有组件的div)。

 
... your page tags ...

与其他浏览器行为存在细微差别:文档对象仅针对位于“…您的页面标记…”部分内的标记显示点击事件。

换句话说,假设您的html和body标签具有黄色背景颜色,并且其子标签具有红色背景颜色。 文档对象仅接收红色区域的点击。 这通常不是严重的缺点。

仅在iPhone 3上测试过