【发布时间】:2016-11-12 00:51:06
【问题描述】:
对不起,这个非常模糊的标题,我想不出更好的了。基本上,我试图让我的下拉菜单的父元素在悬停在其上时更改颜色,并在悬停在子菜单(子菜单)上时保持该颜色。这是父母和孩子的屏幕截图。
如您所见,将鼠标悬停在父级上时会出现子菜单。目标是使鼠标悬停在子菜单上时,“服务”保持橙色。我有它的工作,但我对我的想法不满意。我想知道是否有人有更好的想法如何做到这一点。
我使用了 jQuery 悬停功能。基本上它所说的是,当特定菜单项的子菜单悬停时,该特定菜单项将获得一个类“main-menu-orange”(这只是一个具有颜色的类:#ff6b57)。
它可以工作,但我对它不太满意,因为我必须在 jQuery 中选择单个项目。我不喜欢这样,因为如果另一个菜单项有子项,我必须复制并粘贴代码并更改菜单项 ID。我不想继续为每个有子项的菜单项复制和粘贴悬停功能。下面是我的代码。顺便说一句,我用的是wordpress,菜单项和菜单项有子项等类是自动生成的。
jQuery("#menu-main-menu .menu-item-23 .sub-menu").hover(
function() {
jQuery("#menu-main-menu .menu-item-23 a").addClass("main-menu-orange");
},
function() {
jQuery("#menu-main-menu .menu-item-23 a").removeClass("main-menu-orange");
}
);
jQuery("#menu-main-menu .menu-item-26 .sub-menu").hover(
function() {
jQuery("#menu-main-menu .menu-item-26 a").addClass("main-menu-orange");
},
function() {
jQuery("#menu-main-menu .menu-item-26 a").removeClass("main-menu-orange");
}
);
我还想出了以下代码。这表示如果子菜单悬停在上面,则父母将获得橙色课程。
jQuery("#menu-main-menu .menu-item-has-children .sub-menu").hover(
function() {
jQuery("#menu-main-menu .menu-item-has-children a").addClass("main-menu-orange");
},
function() {
jQuery("#menu-main-menu .menu-item-has-children a").removeClass("main-menu-orange");
}
);
这可行,但缺点是所有父母都可以上课。因此,当“服务”悬停时,导航上的任何父级都会变为橙色。我在导航上有几个元素是父母。
有人对如何清理这个 jQuery 有任何想法吗?也许使用“this”之类的。
谢谢!
另外,对于大量的文字,我很抱歉,我试图完整而彻底地解释它,不幸的是,伴随着大量文字。
【问题讨论】:
-
你能告诉我们工作小提琴或sn-p mate