Javascript jquery菜单幻灯片悬停函数加载过快

Javascript jquery菜单幻灯片悬停函数加载过快,javascript,jquery,menu,Javascript,Jquery,Menu,我目前正在制作一个网站,其中包含一个菜单导航,几乎与在only上找到的相同,而不是向下指向上。无论如何,我使用jquery/javascript为菜单编写了代码,它可以正常工作,但我想知道是否有办法使悬停函数在指定的时间内不生效。这样,当您将鼠标快速悬停在某个项目上时,不会导致页面不必要地加载。如果有人有任何建议,我将不胜感激 下面是创建菜单导航的部分代码的副本。我遇到的另一个问题是,如果您将鼠标悬停在一行中过多的导航项上,箭头会落在后面。我希望通过在hover函数生效之前创建一个等待时间,它可

我目前正在制作一个网站,其中包含一个菜单导航,几乎与在only上找到的相同,而不是向下指向上。无论如何,我使用jquery/javascript为菜单编写了代码,它可以正常工作,但我想知道是否有办法使悬停函数在指定的时间内不生效。这样,当您将鼠标快速悬停在某个项目上时,不会导致页面不必要地加载。如果有人有任何建议,我将不胜感激

下面是创建菜单导航的部分代码的副本。我遇到的另一个问题是,如果您将鼠标悬停在一行中过多的导航项上,箭头会落在后面。我希望通过在hover函数生效之前创建一个等待时间,它可以基本上纠正这个问题

$("div#menu .reps").hover(function() {

if(current_slide != "reps"){
    $(".arrow").animate({"left":"135px"});//move the arrow
    if(current_slide == "clients"){
        $(".clients_display").stop(true, true).fadeOut().hide();
        $(".reps_display").fadeIn().show();
        current_slide = "reps";
    }
    else if(current_slide == "services"){
        $(".services_display").stop(true, true).fadeOut().hide();
        $(".reps_display").fadeIn().show();
        current_slide = "reps";
    }
    else{
        $(".training_display").stop(true, true).fadeOut().hide();
        $(".reps_display").fadeIn().show();
        current_slide = "reps";
    }
}
});

您可以在某些通话中使用
延迟
,例如:

$(“.reps_display”).delay(100.fadeIn().show()


或者你可以让一些
的show
的hide
有更长的持续时间:
show(2000)
例如。

我认为你可以做一些事情,尽管可能有更好的方法:

声明一个函数,在该函数中放置所有带条件的代码:

function hoverFunc(option)
{
    if($(option).is(':hover'))
    {
      all the code to show the menu
    }
}
在over函数中,您可以执行以下操作:

$("div#menu .reps").hover(function() {
   setTimeout("hoverFunc('"+getOptionName+"')",milliseconds);
});
其思想是:当结束时,设置一个超时,当达到超时时,检查鼠标是否结束,然后做任何你想做的事情,最困难的一点是传递对函数的引用,但是你可以传递从html或rel属性获取的项的名称

但是,如果您不需要引用,那么它非常简单,只需调用函数并检查元素即可



还有一个可能对你更有趣的选择。您可以在“所有效果”中添加一个延迟并在之前添加一个停止(true),这样,如果用户快速更改标记,事件将被取消,但如果用户快速通过一个选项并退出菜单,事件将被取消。

这不就是延迟显示非实际悬停事件吗?有什么区别。。如果您延迟内部事件的触发,它将基本上实现相同的效果。我不确定不使用setTimeout还能做什么,它基本上做同样的事情,这是@Mario下面回答的另一个很好的选项。我在代码中添加了一种setTimeout形式,所以现在在菜单项之间切换时,它看起来更平滑了,但我不知道如何检查它在给定的时间后是否仍在某个菜单项上徘徊,但目前这并不是什么大问题。