在jquery中并发执行事件处理程序

时间:2010-10-08 13:25:37

标签: jquery

我的网站上有一个水平菜单,每个菜单中的项目都有一个图像和一个子菜单。我为悬停写了一个事件处理程序。在显示菜单的右图之前,我应该隐藏所有可见的子菜单和图像。但问题是当我在两个菜单之间快速切换时,首先在第二个处理程序之后变为可见,然后对所有图像执行隐藏。结果两个图像都变得可见。真是一团糟!这是我的代码,我需要一些东西来防止在fadeIn或slidedown完成之前执行函数。这是我的js代码:


$(function() {

    $("#primary-menu li").hover(function(){

        if($("#image-menu-"+mlid).is(":visible"))
            return

//      hide previous image
        $("#sub-menu div").hide()
        $('#menu-image img').hide();

        var attr = $(this).attr('class');
        var mlid = attr.substr('5');


        var index = $("#primary-menu li").index(this);      

        $("#image-menu-"+mlid).fadeIn(600);

        if($("#div-"+mlid).length)
            $("#div-"+mlid).slideDown('fast');

    }); 
});

1 个答案:

答案 0 :(得分:1)

delay应该做到这一点,在他们的网站上有例子。