Jquery在触摸屏上添加类和数据

Jquery add classes and data on touchscreens

本文关键字:数据 添加 触摸屏 Jquery      更新时间:2023-09-26

我不完全确定我是否了解如何使用Jquery检测触摸屏和更改类。所以不管怎样,我有一个引导导航菜单,下拉菜单显示在桌面上的"悬停"上。我已经设法禁用了触摸设备上的悬停功能使用:

if (!("ontouchstart" in document.documentElement)) {
document.documentElement.className += " no-touch"; }

现在,我想在下拉项中重新添加类,以再次启用切换下拉项。这就是我想到的:

$('.dropdown a').on('touchstart', function(){
$(this).addClass('dropdown-toggle');
$(this).data('toggle','dropdown');
});

很明显,它在ipad上运行,但在我的kindle fire上不起作用。为什么上面的第一个代码有效,而这里的第二个代码无效?

'ontouchstart'是苹果处理触摸事件的方式,因此仅适用于iOS。

对于所有其他设备,您必须使用"onpointerdown"。

在这里,http://www.stucox.com/blog/you-cant-detect-a-touchscreen/浏览器无法真正检测到是否存在可触摸显示器,因此您必须假设所有设备都具有触摸功能并进行适当的编码。

更复杂的是,试图将触摸和点击分开,就用一台触摸屏笔记本电脑走出了窗口。

我写了一个jQuery插件,它统一了所有设备的触摸/悬停/点击行为,它的工作方式正是你正在处理的。根据你想做的事情交换课程。

本文将详细介绍浏览器如何解释这些不同的交互。http://fallingmonocle.com/monocle-toggle.php