【发布时间】:2014-03-21 22:16:30
【问题描述】:
在我们的菜单中,我有一个父菜单项,其子项变为橙色:悬停。我也在使用 JS 向折叠/展开菜单添加切换,但由于 span 元素位于父列表项的顶部,因此悬停在切换上会触发颜色更改。我正在尝试找出一种方法(使用 Compass 或 jQuery)在切换悬停时覆盖列表上的悬停样式。
我们使用的是 Drupal,因此 HTML 非常复杂,但这里有一个精简版:
<li class="menu__item is-expanded last-expanded">
<span class="menu__link nolink">About</span>
<span class="menu__link nolink expand"> </span> <!--put here by jQuery for the collapse and expand icon -->
<ul class="menu">
<li><a href="mission.html">Mission</a></li>
<li><a href="team.html">Team</a></li>
</ul>
</li>
这是 jQuery:
jQuery(document).ready(function(){
$(".not-front .menu__item.is-expanded.last.expanded span").after("<span class='menu__link nolink expand'> </span>");
$(".front .menu__item.is-expanded.last.expanded span").after("<span class='menu__link nolink expand collapse'> </span>");
$("#block-menu-block-1 ul li li").css({ display: "block" });
$(".not-front #block-menu-block-1 ul li li").css({ display: "none" });
$('#block-menu-block-1 .menu__link.nolink').click(function(){
$('#block-menu-block-1 ul li li').toggle('fast');
$( ".menu__item.is-expanded.last.expanded span.menu__link.nolink.expand" ).toggleClass( "collapse" );
});
});
这是 Sass:
.menu__item:hover a,
.menu__item:hover span {
color: $orange;
}
编辑:对不起!我想早点发布 Sassmeister,但他们的网站已关闭。有一个指向开发站点的链接,但一旦回答就删除了。
编辑:我认为这样的事情会起作用,但事实并非如此:
jQuery(".menu__item span.expand").mouseover(function(e) {
jQuery("menu__item:hover a, .menu__item:hover span").toggleClass( "stay-gray" );
});
随之而来的是 sass:
.menu__item:hover a,
.menu__item:hover span {
color: $orange;
border-color: $orange;
&.stay-gray {
color: $darkGray;
border-color: $darkGray;
}
}
【问题讨论】:
-
您在上面的示例中获得的 Sass 并没有将悬停的
.menu__item上的a和span子标签颜色更改为$orange? -
该部分正在工作,我只想在切换按钮悬停时能够覆盖它或避免它。
-
你能把剩下的菜单贴出来,或者创建一个 jsfiddle 吗?这将使我们更容易调试您的问题。
标签: javascript jquery css sass compass-sass