javascript - 将桌面上的悬停导航栏转换为触摸屏上的可点击导航栏

标签 javascript jquery html css onclick

以下问题是关于我正在 build 的网站。

当鼠标悬停在导航栏上的一个主要类别上时,会显示一组子类别(内部页面链接)。为此,我只需在我的 CSS 代码中使用 :hover 命令。问题是,当我的网站在触摸屏设备上查看时,我可以通过单击 :hover 元素(这是我想要的)来切换打开子类别,但我无法关闭子类别- 通过单击 :hover 元素来分类。在触摸屏设备 (Iphone 6s Plus) 上单击打开后,除非我刷新页面,否则它们将一直处于打开状态。

我的问题:有没有一种方法可以在非触摸屏设备上保持 :hover 功能,同时允许触摸屏用户关闭该元素通过点击它?

我知道如何编写 Javascript(使用 onclick)通过单击打开/关闭元素的显示,但如果我这样做,我将失去 :hover 功能。我想知道是否有一行代码会执行以下操作:当且仅当设备是触摸屏设备时才执行 onclick 函数。

最佳答案

You can use the following code to distinguish devices. Add you hover css with touch-disable.   

detectTouchEvent: function(){
jQuery.support.touch = 'ontouchend' in document;
var $body = $("body");

if(jQuery.support.touch){
$body.addClass("touch-enable");
}else{
$body.addClass("touch-disabled")
}
}

关于javascript - 将桌面上的悬停导航栏转换为触摸屏上的可点击导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37218564/

相关文章:

javascript - 几个跨度共享相同的边框和框阴影

javascript - 无法在 ExtJs 项目中启动我的 index.html

html - css3 光标和默认阴影问题

javascript - eBay JavaScript API - 对象成员名称中的 @ 符号

javascript - tinymce 中的删除线文本

Javascript将多个对象插入一个空对象

javascript - 检查父复选框不会检查子复选框

javascript - 我有一个具有父 id 的平面数组,我想将其嵌套起来,就像使用 javascript 的树父子数组一样

javascript - 动态固定div时停止闪烁

javascript - 创建从侧面滑入和滑出的动画 div