[英]Catching the Click on DOM/HTML/BODY event on the iPad
我正在使用jQuery来检测DOM上的点击 - 或者让我们点击每一次。
$(document).click(function(){
alert("Click :-)");
});
除了适用于iPad / iPhone的Safari之外,每个浏览器都能很好地工作。 我也尝试在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)。
<body><div onclick="void(0)">
... your page tags ...
</div></body>
与其他浏览器行为存在细微差别:文档对象仅为位于“...您的页面标记...”部分内的标记提供点击事件。
换句话说,假设您的html和body标签具有黄色背景颜色,并且其子标签具有红色背景颜色。 文档对象仅接收红色区域的点击。 这通常不是严重的缺点。
仅在iPhone 3上测试过
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.