我正在使用jQuery来检测DOM上的点击 - 或者让我们点击每一次。
$(document).click(function(){
alert("Click :-)");
});
除了适用于iPad / iPhone的Safari之外,每个浏览器的效果都相当不错。我也尝试在html或body元素上应用事件 - 没办法。如何检测iPad / iPhone上的常见点击?
祝你好运, 吉姆
答案 0 :(得分:20)
正如我在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) {
...
});
答案 1 :(得分:7)
这些答案让我开始朝着正确的方向发展(首先谷歌为“jquery document.on ipad”),所以非常感谢,但借鉴this answer我将其简化为:
$(document).on("click touchstart", function (ev) {
...
});
如果平台(如Android或Windows Phone或其他东西)支持事件泡泡中的click和touchstart,这显然会产生不良结果,所以如果有人知道让我知道(我会修复我的代码并删除它回答!:)
答案 2 :(得分:5)
我用过这个:
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
};
};
-ain,你不必使用'body'你可以通过这种方式为一个对象分配一个变量:
var dd = document.getElementsByClassName('infoAction')[0];
答案 3 :(得分:4)
您可以改为使用touchstart
事件。
答案 4 :(得分:2)
$('html').click(function(){
alert("Click :-)");
});
这适合我,我现在测试了。
即使在页面上没有任何内容,无论您在哪个页面上单击,都可以使用。
答案 5 :(得分:2)
您可以将点击侦听器附加到主包装元素(例如包含页面中所有组件的div)。
答案 6 :(得分:1)
<body><div onclick="void(0)">
... your page tags ...
</div></body>
与其他浏览器行为存在细微差别:文档对象仅针对位于&#34; ...您的页面标记内的标记提供点击事件...&#34;部分。
换句话说,假设您的html和body标签具有黄色背景颜色,并且其子标签具有红色背景颜色。 文档对象仅接收红色区域的点击。这通常不是一个严重的缺点。
仅在iPhone 3上测试