想要在悬停时显示下拉菜单,但有20秒延迟

时间:2014-02-11 06:10:56

标签: javascript drop-down-menu hover delay

我有一个下拉菜单工作正常。我希望在用户将鼠标悬停在20秒之前10秒或20秒之后显示我的下拉...我已经阅读了所有其他线程并尝试了setTimeout()函数,但它对我不起作用..可以有人修复我的问题很快..对我来说将是一个很大的帮助。 谢谢 这是我下拉的Javascript代码

 jQuery.fn.jetmenu = function(options){

var settings = {

     indicator          :false              // indicator that indicates a submenu

    ,speed              :300                // submenu speed

    ,hideClickOut       :true               // hide submenus when click outside menu
    ,delay              : 0

}

$.extend( settings, options );



var firstItemClick = 0;

var menu = $(".jetmenu");



if(settings.indicator == true){

    $(menu).find("a").each(function(){

        if($(this).siblings(".dropdown, .megamenu").length > 0){

            $(this).append("<span class='indicator'>+</span>");

        }

    });

}



$(menu).prepend("
<li class='showhide'><span class='title'></span><span class='icon'><em></em><em></em><em></em><em></em></span></li>

“);

screenSize();


$(window).resize(function() {

    screenSize();

});



function screenSize(){

    $(menu).find("li, a").unbind();

    $(document).unbind("click.menu touchstart.menu");

    $(menu).find("ul.dropdown").hide(0);

    if(window.innerWidth <= 479){ 

        showCollapse();

        bindClick();

        if(firstItemClick == 0){

            //$(menu).children("li:not(.showhide)").hide(0);

        }

    }

    else{

        hideCollapse();
        bindHover();


    }

}



function bindHover(){

    if (navigator.userAgent.match(/Mobi/i) || window.navigator.msMaxTouchPoints > 0){                       

        $(menu).find("a").on("click touchstart", function(e){

            e.stopPropagation(); 

            e.preventDefault();

            window.location.href = $(this).attr("href");

            $(this).parent("li").siblings("li").find(".dropdown, .megamenu").stop(true, true).fadeOut(settings.speed);

            if($(this).siblings(".dropdown, .megamenu").css("display") == "none"){

                $(this).siblings(".dropdown, .megamenu").stop(true, true).fadeIn(settings.speed);

            }

            else{

                $(this).siblings(".dropdown, .megamenu").stop(true, true).fadeOut(settings.speed);

                $(this).siblings(".dropdown").find(".dropdown").stop(true, true).fadeOut(settings.speed);

            }

        });



        if(settings.hideClickOut == true){

            $(document).bind("click.menu touchstart.menu", function(ev){

                if($(ev.target).closest(menu).length == 0){

                    $(menu).find(".dropdown, .megamenu").fadeOut(settings.speed);

                }

            });

        }

    }

    else{

        $(menu).find("li").bind("mouseenter", function(){ 

            $(this).children(".dropdown, .megamenu").stop(true, true).fadeIn(300);


        }).bind("mouseleave", function(){

            $(this).children(".dropdown, .megamenu").stop(true, true).fadeOut(settings.speed);

        });

    }

}



function bindClick(){

    $(menu).find("li:not(.showhide)").each(function(){

        if($(this).children(".dropdown, .megamenu").length > 0){

            $(this).children("a").bind("click", function(){

                if($(this).siblings(".dropdown, .megamenu").css("display") == "none"){

                    $(this).siblings(".dropdown, .megamenu").slideDown(settings.speed);

                    firstItemClick = 1;

                }

                else{

                    $(this).siblings(".dropdown, .megamenu").slideUp(settings.speed);

                }

            });

        }

    });

}



function showCollapse(){

    $(menu).children("li:not(.showhide)").hide(0);

    $(menu).children("li.showhide").show(0);

    $(menu).children("li.showhide").bind("click", function(){

        if($(menu).children("li").is(":hidden")){

            $(menu).children("li").slideDown(settings.speed);

        }

        else{

            $(menu).children("li:not(.showhide)").slideUp(settings.speed);

            $(menu).children("li.showhide").show(0);

        }

    });

}



function hideCollapse(){

    $(menu).children("li").show(0);

    $(menu).children("li.showhide").hide(0);

}   

}

0 个答案:

没有答案