使用Jquery创建一个具有单击和悬停功能的菜单
Create a menu with click and hover functionalty using Jquery
我正在尝试将单击和悬停功能添加到菜单中。我现有的在点击时激活菜单下拉菜单的Javascript是:
<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>
我试图使用jquery添加同时悬停触发,方法是将放在页面的头部
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>$("#nav").bind("click hover", fn);</script>
除其他外,不出所料,它们都不起作用。我显然不知道自己在做什么!没有添加jquery的工作页面在这里,菜单在页面的左手边。如果有人能给我建议,我将不胜感激!
尝试更新到最新的Jquery,然后在上阅读
.on( events [, selector] [, data], handler(eventObject) )
events:一个或多个空格分隔的事件类型和可选命名空间,如"点击"或"keydown.myPlugin"。
因此,基本上我认为您可以将.click
交换为.on
,并使用事件click mouseover
。
编辑
在您的源页面中,Jquery版本是1.4.2
,仅供注意。
您可以使用预构建的解决方案,而不是从头开始创建自己的解决方案。
请参阅超级鱼-http://users.tpg.com.au/j_birch/plugins/superfish/.
Superfish是一个处理点击/悬停下拉菜单的jQuery插件。
对于仅css的下拉菜单,请搜索"Suckerfish"。Superfish可以在suckerfish之上使用,以在用户没有启用javascript的情况下实现优雅的降级。
我发现这最适合我的需求:
`<script type="text/javascript">
$(function(){
$('#nav > li > ul')
.hide()
.click(function(e){
e.stopPropagation();
});
$('#nav > li').toggle(function(){
$(this)
.removeClass('waiting')
.find('ul').slideDown();
}, function(){
$(this)
.removeClass('waiting')
.find('ul').slideUp();
});
$('#nav > li').hover(function(){
$(this).addClass('waiting');
setTimeout(function(){
$('#nav .waiting')
.click()
.removeClass('waiting');
},600);
}, function(){
$('#nav .waiting').removeClass('waiting');
});
});
</script>`
@Niloct帮助我找到了一种方法来关闭之前触发的菜单项的子菜单,但这导致菜单有点不切实际。谢谢
相关文章:
- OpenLayers在悬停时高亮显示功能,并在单击时选择
- 使用Jquery创建一个具有单击和悬停功能的菜单
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 悬停时展开垂直下拉菜单,而不是单击
- Highcharts-在单击而不是悬停时显示工具提示
- 如何使单击时的下拉列表不悬停
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 如何使Highcharts中的渲染标签始终可见,并且相对于单击或悬停的点仍然可见
- 在可视化中将CSS从悬停更改为单击
- 鼠标悬停事件不会触发以触发 D3 中的单击事件
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 悬停时无法单击锚标记,但其显示链接
- Jquery Resize问题.如果宽度小于768宽度,请启用“单击选项”.768以上鼠标悬停选项启用
- 如何防止Jquery colorbox组在单击或鼠标悬停时启动
- 切换悬停和单击无法正常工作
- 如果释放鼠标时内部元素未悬停,则防止触发“单击”的正确方法
- fadeIn在悬停时工作,但在单击/单击时不工作
- 单击后使CSS悬停元素永久化
- VBA单击悬停下拉菜单
- Chrome扩展-在单击/悬停时更改弹出图标