我有一个带有子菜单的Wordpress菜单。我在li
元素中添加了一个箭头,里面有一个子菜单。当鼠标越过a
内的li
时,它会使用CSS制作悬停动画。现在我想将动画扩展到span
标记内a
元素内的箭头。我是用jQuery做的,
$('nav ul li.menu-item-has-children').hover(function() {
$('nav ul li a span.arrow').css('color', '#fff');
}, function() {
$('nav ul li a span.arrow').css('color', '#be1722');
});
但是当打开子菜单并且鼠标悬停在它上面时,箭头仍为白色。怎么能避免这个?
这是我菜单的结构:
<nav>
<li class="menu-item-has-children">
<a>Menu item with sub menu</a><span class="arrow">arrow</span>
<ul>
<li>
<a>Sub menu link</a>
</li>
</ul>
</li>
</nav>
我也试过这个:
$('nav ul li.menu-item-has-children a').hover(function() {
$('nav ul li a span.arrow').css('color', '#fff');
}, function() {
$('nav ul li a span.arrow').css('color', '#be1722');
});
但如果我在子菜单中悬停a
标签,则该功能会再次启动,箭头会变为白色。
任何人都可以帮助我吗?
答案 0 :(得分:3)
您的元素是{"offset":1,"result":[{"host":"x.x.x.x","count":123"}]}
;。但是<span>arrow</span>
中的span.arrow
会搜索带有$('nav ul li a span.arrow')
类的<span>
元素。并且没有为您的.arrow
元素分配此类。
使用此:
<span>
选择器<span class="arrow">arrow</span>
搜索$('nav ul li a span.arrow')
里面的<span>
<a>
。
span
元素不是a
的孩子,而是其兄弟,请使用+
而不是选择器中的空格。
$('nav ul li.menu-item-has-children a').hover(function() {
$('nav ul li a+span.arrow').css('color', '#fff');
}, function() {
$('nav ul li a+span.arrow').css('color', '#be1722');
});