如何编辑此脚本以仅显示一个子菜单

时间:2014-11-25 14:39:16

标签: jquery

我使用此代码在悬停时显示子菜单。我试图使用延迟参数,但只有当悬停需要1秒时我才需要显示子菜单。

$('.mainmenu li').hover(function() {
    $(this).find('.submenu').fadeIn( 'slow' );
},
function() {
  $(this).find('.submenu').slideUp( 1 ).delay( 3000 );

我找到了这个代码,它正是我需要的,但我只有一个问题,这个脚本显示所有子菜单。

$(function() {
var timeoutId;
$(".mainmenu li").hover(function() {
    if (!timeoutId) {
        timeoutId = window.setTimeout(function() {
            timeoutId = null;
            $(".submenu").slideDown('slow');
       }, 1500);
    }
},
function () {
    if (timeoutId) {
        window.clearTimeout(timeoutId);
        timeoutId = null;
    }
    else {
       $(".submenu").slideUp('slow');
    }
});

});

我试着把这一行:

$(this).find('.submenu').fadeIn( 'slow' );

但它不起作用。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

由于您没有发布HTML,假设每个.submenu

存在一个.mainmenu li

试试这个:这只会显示当前.submenu的{​​{1}},而不是全部li

需要更改新代码:

.submenu

完整代码:

$(this).find('.submenu').slideDown('slow');