捕获iPad上的DOM / HTML / BODY单击事件

|| 我正在使用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) {
    ...
});
    
        这些答案使我朝着正确的方向开始(第一个Google在“ ipad \”上使用“ jquery document。”),因此,我对此表示感谢,但我借用了这个答案,将其简化为以下形式:
$(document).on(\"click touchstart\", function (ev) {
    ...
});
如果某个平台(例如Android或Windows Phone或其他平台)同时支持事件气泡中的click和touchstart,则显然会产生不良结果,因此,如果有人知道让我知道(然后我将修复我的代码并删除此答案!) :)     
        我用了这个:
jQuery(document).on(\'touchstart\',function(event){
    //your code here
         });
-也可以代替\“ document \”绑定到任何DOM对象。 这(从另一个论坛的答案):
var body = document.getElementsByTagName(\'body\')[0];

 if (\"ontouchstart\" in window) {

        body.ontouchstart = function(){
   //your code here
         };     
                 };
再一次,您不必使用\'body \',您可以按以下方式通过类将变量分配给对象:
var dd = document.getElementsByClassName(\'infoAction\')[0]; 
    
        您可以改用
touchstart
事件。     
        
$(\'html\').click(function(){
   alert(\"Click :-)\");
});
这对我有效,我现在对其进行了测试。 甚至在您单击页面的任何地方,页面上都没有内容。     
        您可以将click侦听器附加到主包装器元素(例如,将页面中所有组件都包含在内的div)。     
        
<body><div onclick=\"void(0)\">
... your page tags ...
</div></body>
与其他浏览器的行为略有不同:文档对象仅针对\“ ...您的页面标签... \”部分中的标签,才会显示点击事件。 换句话说,假设您的html和body标签具有黄色背景色,而其子标签具有红色背景色。 该文档对象将仅在红色区域上获得点击。这通常不是一个严重的缺点。 仅在iPhone 3上测试     

要回复问题请先登录注册