在iPad上捕捉点击DOM/HTML/BODY事件
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上的常见点击?
谨致问候,Jim
正如我在http://www.danwellman.co.uk/fixing-jquery-click-events-for-the-ipad/您可以测试用户代理,并根据平台使用触摸启动或点击
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或其他平台)在事件气泡中同时支持点击和触摸启动,这显然会产生不希望的结果,所以如果有人知道的话,请告诉我(我会修复我的代码并删除这个答案!:)
您可以使用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
};
};
-同样,您不必使用"body",您可以通过以下方式将变量按类分配给对象:
var dd = document.getElementsByClassName('infoAction')[0];
$('html').click(function(){
alert("Click :-)");
});
这对我有效,我现在测试过了。
即使在页面上没有内容的情况下也可以工作,无论您在页面上单击什么位置。
您可以将click侦听器附加到主包装器元素(比如div,它包含页面中的所有组件)。
<body><div onclick="void(0)">
... your page tags ...
</div></body>
与其他浏览器的行为有一个细微的区别:文档对象只会显示位于"…你的页面标签…"部分的标签的点击事件。
换句话说,假设html和body标签的背景颜色为黄色,它们的子标签的背景色为红色。文档对象将只接收红色区域上的单击。这通常不是一个严重的缺点。
在仅限iPhone 3的上测试
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 注入的HTML仅在Dom中解释为字符串
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- DOM更改后的L20N翻译html
- 如何序列化包括影子 DOM 在内的 HTML DOM
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- 使用 jQuery 调用 DOM HTML
- 当我认为它不应该重新渲染视图时,如何防止 Meteor 在 html 选择 dom 单击事件上重新渲染视图
- 使用 ajax 更改光滑轮播的 html 后,DOM 不会更新
- 如何选择由 DevExpress constrols 使用 Javascript DOM 技术自动生成的 html “i
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 为什么这里没有应用来自模板dom的html
- 通过Java加载XML并制作HTML DOM的一部分
- 在DOM(html)上下文中使用角度作用域函数时出现的问题
- Pupulate Dom HTML fom JSON and coffeescript
- 编辑 DOM/HTML 元素
- JavaScript DOM:html 表操作问题
- 如何识别由于Chrome扩展程序而导致的DOM html代码更改
- 在iPad上捕捉点击DOM/HTML/BODY事件