メニューがあり、各メニュー項目は CSS で設定されたクラスを持つスパンです。
.newClass {color: red}
.oldClass {color:black} oldClass:hover {color:blue;}
メニュー項目をクリックすると、クラスが次のように変更されます
$(this).removeClass('oldClass').addClass('newClass');
。これは正常に機能します。
別の menuItem がクリックされると、クラスを現在のメニュー項目に戻します。
$(this).removeClass('newClass').addClass('oldClass');
問題は、クラスが変更されたときに、メニュー項目にマウスを合わせるまで変更が反映されないことです。そのため、メニュー項目の色は、マウスでマウスを合わせるまで赤のままで、その後青のホバーで黒に戻ります。
何が起こるべきかについては、コメントの Gaby の例を参照してください。
これが私の実際のコードです:
$('.headingRev').removeClass('headingRev').addClass('heading');
$(this).removeClass('heading').addClass('headingRev');
そしてここにcssがあります:
.heading {color: #bb1f1a;}
.heading:hover {color: #e9b49e;text-decoration:none;}
.headingRev {color: #e9b49e;}