ontouchstart 不适用于 Windows 8 平板电脑
ontouchstart not working on Windows 8 Tablet
我正在尝试让 ontouchstart 为 windows 平板电脑工作。如果检测到它会禁用我的链接的顶层,以便单击事件允许菜单保持打开状态(而不是悬停效果)。
以下代码适用于其他触摸设备,所以我不确定是否还有其他需要做的事情?
$topLink.on('click', function (e) {
$dropDown.removeClass('child');
$dropDown.not($(this).next('.dropdown')).removeClass('open');
$topLink.not($(this)).removeClass('active-link');
$(this).next('.dropdown').toggleClass('open');
$(this).toggleClass('active-link');
if (("ontouchstart" in document.documentElement) || ($window.width() < 1120)) {
// disable top level links for touch
e.preventDefault();
e.stopPropagation();
}
});
IE/Edge 没有 TouchEvents
(至少默认不启用),它有 PointerEvents
.
看看caniuse.com:
PointerEvents
TouchEvents
我正在尝试让 ontouchstart 为 windows 平板电脑工作。如果检测到它会禁用我的链接的顶层,以便单击事件允许菜单保持打开状态(而不是悬停效果)。
以下代码适用于其他触摸设备,所以我不确定是否还有其他需要做的事情?
$topLink.on('click', function (e) {
$dropDown.removeClass('child');
$dropDown.not($(this).next('.dropdown')).removeClass('open');
$topLink.not($(this)).removeClass('active-link');
$(this).next('.dropdown').toggleClass('open');
$(this).toggleClass('active-link');
if (("ontouchstart" in document.documentElement) || ($window.width() < 1120)) {
// disable top level links for touch
e.preventDefault();
e.stopPropagation();
}
});
IE/Edge 没有 TouchEvents
(至少默认不启用),它有 PointerEvents
.
看看caniuse.com: PointerEvents TouchEvents