javascript - 在移动设备上将 jQuery hover() 更改为 click()

标签 javascript jquery html css

我有一个简单的 jQuery 下拉菜单,它没有任何问题。我遇到的问题是我的响应式设计仍然保持悬停效果,这在移动设备上无法正常工作。单击汉堡包图标 .menu 后是否可以取消悬停?这个想法是让 .subNav 隐藏在移动设备上,一旦用户点击 .topNav li a .sabNav 就会向下滑动。我无法在 fiddle 中附加响应式设计,但您可能会很好地了解它在做什么。

http://jsfiddle.net/9L3cE/1/

最佳答案

这个问题不仅仅是您要完成的任务。真正的问题是确定这一点:什么是移动?在您的情况下,您使用小屏幕尺寸作为触摸屏功能的代表。

目前这可能是一个不错的解决方案,但它不是一个很好的长期解决方案。如果您的网站上出现了一个微型上网本,并且根据您设置的响应断点,它会根据其屏幕尺寸获得“移动” View ,但它是一个没有任何实际触摸功能的设备,该怎么办?

无论如何,如果您使用屏幕大小作为触摸功能的代理,您可以进入您的 javacript 并根据您确定为“移动”(触摸)断点。例如。对于 600px 处的断点:

var menuEvent = ($(window).width() < 600) ? 'hover' : 'click';

然后,当你想绑定(bind)你的 UI 事件时,你会使用:

$(element).bind(menuEvent, function() { ... });

关于javascript - 在移动设备上将 jQuery hover() 更改为 click(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23296264/

相关文章:

javascript - Google Analytics - 将 https 和 http 视为单个 "property"

javascript - 如何在 jquery + jquery mobile 中创建自定义下拉菜单

html - 使用 <div> 生成 "table"

html - 使用 Xpath 如何从有时包含链接的表格单元格中提取数据?

jquery - 函数作为 jQuery 中 $ 的参数

jquery 向下滑动功能无法在导航栏中实现

javascript - jquery 滚动到类名

javascript - reactjs - redux 表单和 Material ui 框架 - 具有自动类型 - 和清除字段功能

javascript - CKEditor - 在工具栏中显示没有表格按钮的表格?

javascript - 如何防止用户在发出ajax请求时与页面交互