我正在使用此菜单上的Intranet系统。我有一个部分工作的菜单系统。
我已将代码添加到此处:http://jsbin.com/eloxe3/8
浅灰色背景的菜单项有一个子菜单......而其他菜单项没有。在我将鼠标悬停在没有子菜单的链接1秒后,我需要一些帮助才能使子菜单消失。
我有这个功能,显示子菜单...&希望新代码遵循类似的原则
$(".menu-arrow").hover(function(){
$.data(this, "timer", setTimeout($.proxy(function() {
$(this).click();
},this),500));
},function(){
clearTimeout($.data(this, "timer"));
});
...(对不起,这个内联网的用户是新手......以防他们偶然翻转一个链接)
任何帮助都非常感谢,谢谢
答案 0 :(得分:0)
查看源代码,您应该将no-submenu
与悬停状态绑定。
$('.no-submenu').bind('mouseenter',function(){
//at this point the mouse is over a link with no submenu.
//So we close all submenus
$('.rtmenu').hide().delay(1000);
})
我不确定天气延迟适用于hide
但您可以试一试,如果没有,请尝试以下方法:
$('.no-submenu').bind('mouseenter',function(){
//at this point the mouse is over a link with no submenu.
//So we close all submenus
var T = setTimeout(function(){
$('.rtmenu').hide();
clearTimeout(T);
},1000)
});
我可能错了,但无论如何你都可以给它一个旋转。
clearTimeout
尝试一下这一行:
var _TimeOut;
$('.no-submenu').hover(,function(){
var _TimeOut = setTimeout(function(){$('.rtmenu').hide();},1000)
},function(){
clearTimeout(_TimeOut);
});
不是$('.rtmenu').hide()
可能需要$('.level2').hide()
而你可能更善于与.css('display','none')
具体相关
悬停式文档位于此处:http://api.jquery.com/hover/
答案 1 :(得分:0)
看看hoverIntent plugin。仅当光标悬停在元素上时才触发。
var hideSubmenus = function () {
$('.rtmenu').hide()
};
$(".no-submenu").hoverIntent({
over: hideSubmenus,
out: function () { /* do nothing */ }
});
这样,如果子菜单意外地将光标移出菜单然后再快速返回,则子菜单不会被隐藏,这通常是我体验中子菜单的问题。