相关疑难解决方法(0)

确定并绑定点击或"触摸"事件

我正在使用以下代码绑定"click"或"touchstart"事件(使用jQuery on(eventType, function() { ... })).

var what = (navigator.userAgent.match(/iPad/i)) ? 'touchstart' : 'click';
Run Code Online (Sandbox Code Playgroud)

稍后的:

$foo.on(what, function() { ... });
Run Code Online (Sandbox Code Playgroud)

...这对iPad和"其他一切"都很有用,但我担心上面的代码有"iPad隧道视觉"......

我的问题:

是否所有其他设备(例如Android平板电脑)都具有类似名称的"touchstart"事件?如果是这样,我如何改进上面的代码,以便我可以考虑这些事件类型?

换句话说,我如何在上述代码(不仅仅是iPad)中考虑更广泛的触控设备?


编辑#1

你们有什么想法:

var foo = ('ontouchstart' in window) ? 'touchstart' : ((window.DocumentTouch && document instanceof DocumentTouch) ? 'tap' : 'click');
Run Code Online (Sandbox Code Playgroud)

注意:上述大部分逻辑来自Modernizr.

以上似乎适用于Firefox/iPad ......此时我没有太多可以测试的内容.

我喜欢上面的内容是我不是UA嗅闻.:)

tap所有其他触摸设备都是一个很好的默认设置?


编辑#2

这里有一些有趣的信息,链接到这个:

为移动Web应用程序创建快速按钮

这不是一个直接的答案,但是在面对多个平台和设备的点击相关事件时,提供了很多关于开发人员面临的情况的细节.


编辑#3

这里有一些很好的信息:

Android和iPhone触控事件

Android和iPhone版本的WebKit有一些共同的触摸事件:

touchstart - triggered when a touch is initiated. Mouse equivalent - mouseDown
touchmove …
Run Code Online (Sandbox Code Playgroud)

javascript iphone mobile jquery android

29
推荐指数
3
解决办法
5万
查看次数

标签 统计

android ×1

iphone ×1

javascript ×1

jquery ×1

mobile ×1