jquery菜单幻灯片错误

时间:2012-06-04 17:20:02

标签: javascript jquery menu settimeout

我目前正在创建一个网站,其中包含的菜单导航几乎与fotopunch.com上的菜单导航相同,而不是指向它。无论如何,我使用jquery / javascript为菜单编写代码并且它可以工作,但是在fotopunch站点上也会发生一个小错误。 当您将光标从一个菜单项移动到另一个菜单项并反复返回时,它会暂时中断显示屏。有没有办法解决这个问题?我将包含部分javascript文件,以便您可以看到我为每个菜单项做了什么。

$("div#menu .reps").hover(function() {
    //if the current slide is not reps
    if(current_slide != "reps"){
    //move the arrow to the corresponding position for the reps slide 
        $(".arrow").animate({"left":"135px"});//move the arrow
        //(test which slide it is.)
        if(current_slide == "clients"){
            //fade out & hide the current slide
            $(".clients_display").fadeOut().hide();//hide the current slide
            //show the reps slide & fade in
            $(".reps_display").fadeIn().show();//show the slide
            //the current slide is the reps slide
            current_slide = "reps";
        }
        else if(current_slide == "services"){
            //fade out & hide the current slide
            $(".services_display").fadeOut().hide();//hide the current slide
            //show the reps slide & fade in
            $(".reps_display").fadeIn().show();//show the slide
            //the current slide is the reps slide
            current_slide = "reps";
        }
        else{
            //fade out & hide the current slide
            $(".training_display").fadeOut().hide();//hide the current slide
            //show the reps slide & fade in
            $(".reps_display").fadeIn().show();//show the slide
            //the current slide is the reps slide
            current_slide = "reps";
        }
    }
});

我为每个菜单项(有4个)执行此操作。我认为问题是当它淡出并淡入时,因为如果它试图做太多同时它同时显示2个菜单div。我试图添加超时但不成功。 修复此错误的最佳方法是什么?它足够小,不是一个重要的优先事项,但让它更好地工作会很好。感谢。

1 个答案:

答案 0 :(得分:0)

if(current_slide == "clients"){

            $(".clients_display")stop(true, true).fadeOut().hide();

            $(".reps_display").stop(true, true).fadeIn().show();

            current_slide = "reps";

        } else if(current_slide == "services"){

            $(".services_display").stop(true, true).fadeOut().hide();

            $(".reps_display").stop(true, true).fadeIn().show();

            current_slide = "reps";
        } else{

            $(".training_display").stop(true, true).fadeOut().hide();//hide the current slide

            $(".reps_display").stop(true, true).fadeIn().show();//show the slide

         }