Cette question peut avoir été posée et je suis désolé si je l'ai raté,jQuery vol stationnaire
J'ai cette liste déroulante structure du menu:
<ul id="menu">
<li><a>text1</a></li>
<li class="withchild"><a class="itemchild">text2</a>
<ul>
...
</ul>
</li>
<li><a>text3</a></li>
</ul>
Je change de fond de itemchild
au hover
.
$("li.withchild ul").hover(function(){
$(this).parent().find('.itemchild').css('background','the new background');
},
function(){
$(this).parent().find('.itemchild').css('background','the old background');
});
Et le CSS pour li.withchild a.itemchild:hover{the new background}
Mon problème: Si je passe la souris sur .itemchild
les changements de fond, puis passe la souris sur
li.withchild ul
, fond de .itemchild
reste avec le nouveau fond. Mais si je passe la souris
li.withchild ul
sur .itemchild
l'arrière-plan revient à l'arrière-plan.
Quelle est la meilleure façon de contourner ce problème?
Avez-vous besoin d'utiliser javascript pour ça? – cusimar9
Eh bien oui parce que je ne vois pas comment je pourrais le faire avec CSS: 'li.withchild ul: hover {/ * changer .itemchild fond * /}'? – Sparkup
Eh bien, c'est exactement le comportement pour lequel vous l'avez codé. Semble juste pour moi. Quel était le comportement que vous vouliez qu'il fasse? –