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