悬停时展开垂直下拉菜单,而不是单击
Expand vertical drop down menu on hover instead of click
我有一个可扩展的垂直下拉菜单,当前在单击一级项目时会展开,但我希望它在悬停菜单项时展开。原始脚本是:
<script type="text/javascript">
$(document).ready(function () {
$('#nav > li > a').click(function(){
if ($(this).attr('class') != 'active'){
$('#nav li ul').slideUp();
$(this).next().slideToggle();
$('#nav li a').removeClass('active');
$(this).addClass('active');
}
});
});
</script>
我把.click(function
改成了.hover(function
,这很有效,但我不知道这是否是最好的方法。有人能告诉我是否有更好的方法来实现这一点吗?单击此处,您可以在页面左侧看到.click版本菜单的工作示例。谢谢
将其更改为悬停是可以接受的。它绝对是可读性很强的代码,这是最重要的。然而,有一个问题——正如Daniel所评论的,这会使你的菜单无法在触摸设备上导航,这意味着你会使每个手机和平板电脑都无法访问该网站。这是一件非常糟糕的事情,但你可以做一些事情。
例如,jQTouch库有一些很棒的触摸特定事件处理,可以让你为移动用户优化菜单。否则,您可以将菜单的JavaScript逻辑封装在一个条件中,也可以将每个操作分配给触摸和单击。
*除了带鼠标的手机和平板电脑(这是一个非常非典型的用例。)
相关文章:
- 单击下拉项-jquery上的事件
- 单击下拉菜单时,将文本粘贴到输入框中
- 在jquery javascript中单击下拉列表时更改标签
- 单击下拉值 Javascript
- 单击下拉菜单隐藏其他下拉菜单
- 如果在内部单击下拉菜单,则不应将其关闭
- 使用Selenium WebDriver单击下拉菜单不会激活Javascript来添加或删除页面中的项目
- 单击下拉菜单中的链接不起作用
- 单击下拉菜单按钮时引导打开链接
- 单击下拉菜单中包含子菜单的列表项,将关闭其余菜单,但不会'不要扩大新的
- 在jquery中单击下拉菜单生成一行不起作用
- 如何在单击下拉菜单时减小帧大小
- 单击下拉菜单后如何更改箭头图标
- ie9没有显示单次点击下拉菜单
- 禁用btn-group On单击下拉菜单中的Bootstrap 3
- 当单击下拉菜单时,addClass从按钮中删除
- 尝试单击下拉菜单中的链接,该链接只能通过将鼠标悬停在元素上来访问
- 单击下拉菜单创建一个弹出窗口(下拉菜单中没有选择)
- Bootstrap 3下拉菜单在单击下拉菜单中的任何内容时保持显示
- 单击下拉菜单,关闭所有其他下拉菜单