Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery-下拉菜单-mouseenter/mouseleave_Javascript_Jquery_Css_Menu_Drop Down Menu - Fatal编程技术网

Javascript JQuery-下拉菜单-mouseenter/mouseleave

Javascript JQuery-下拉菜单-mouseenter/mouseleave,javascript,jquery,css,menu,drop-down-menu,Javascript,Jquery,Css,Menu,Drop Down Menu,我已经花了至少两个小时试着让这件事成功 基本上,我有一个带有项目的下拉菜单,我试着编写一些模仿HoverIntent插件的东西,允许用户在菜单关闭前将鼠标移到项目外固定的秒数 我所写的部分是有效的,除了如果你试图在菜单之间移动鼠标太快,它会“断开”。如果你慢慢做,一切都会按预期进行 亲自去看看吧: 如何修复它???这应该可以: var old_item; var timeout; $(".nav_menu > li").mouseenter(function(){ var it

我已经花了至少两个小时试着让这件事成功

基本上,我有一个带有项目的下拉菜单,我试着编写一些模仿HoverIntent插件的东西,允许用户在菜单关闭前将鼠标移到项目外固定的秒数

我所写的部分是有效的,除了如果你试图在菜单之间移动鼠标太快,它会“断开”。如果你慢慢做,一切都会按预期进行

亲自去看看吧:

如何修复它???

这应该可以:

var old_item;
var timeout;

$(".nav_menu > li").mouseenter(function(){
    var item_selected = $("ul", this);
    clearTimeout(timeout);
    if(old_item){
        old_item.hide();
    }
    item_selected.show();      
});

$(".nav_menu > li").mouseleave(function(){
    var item_selected = $("ul", this);       
    old_item = item_selected;
    timeout= window.setTimeout(function(){item_selected.hide()}, 500);  
});

为了便于比较,您应该发布原始代码。
var old_item;
var timeout;

$(".nav_menu > li").mouseenter(function(){
    var item_selected = $("ul", this);
    clearTimeout(timeout);
    if(old_item){
        old_item.hide();
    }
    item_selected.show();      
});

$(".nav_menu > li").mouseleave(function(){
    var item_selected = $("ul", this);       
    old_item = item_selected;
    timeout= window.setTimeout(function(){item_selected.hide()}, 500);  
});