停止效果发生在子菜单上,当主菜单悬停在上面

Jquery: Stop effect occuring on submenu item when primary menu is hovered over

本文关键字:菜单 在上面 悬停      更新时间:2023-09-26

我在主菜单中嵌套了一个子菜单。当用户将鼠标悬停在主菜单项上时,图像逐渐淡入,悬停时淡出。同样的情况也会发生在子菜单上。

我的问题是从主菜单项的图像不淡出,当我悬停在其嵌套子菜单。我试过使用.not()(例如:.not('ul li')),但没有效果。

我也试过在子菜单项悬停时直接瞄准父项,也没有效果。(如:$(this).parent().parent().find("a").html();)

有没有人知道一种方法来修改我的脚本,使悬停在第一个菜单项不影响第二个嵌套的项目?

//FADE SUB MENU IMAGES    
$("#menu > ul > li > ul > li").hover(
      function () {
        var linktext = $(this).find("a").html(); 
        $('img[alt="' + linktext + '"]').stop().fadeIn('100');
         //FADEOUT PRIMARY MENU ITEM IMAGE
         var linktexttop = $(this).parent().parent().find("a").html();
        $('img[alt="' + linktexttop + '"]').stop().fadeIn('100');
      },
      function () {
        var linktext = $(this).find("a").html();
        $('img[alt="' + linktext + '"]').fadeOut('100');
      }
    );

编辑:添加小提琴:

http://jsfiddle.net/veW7B/3/

在小提琴-当子菜单悬停在我只想显示蓝色的正方形,而不是两个

您可以使用has()和not()来选择哪个'li'有子节点,哪个没有。

使用$('li').has('ul').hover()作为主菜单,使用$("li:not(:has(ul))").hover()作为子菜单

我已经更新了你的小提琴在这里http://jsfiddle.net/veW7B/5/