Поскольку ваш CSS имеет немедленный эффект наведения, он просто предшествует jQuery и меняет стили до того, как у вашего события наведения появится шанс. Я бы отключил эти стили или изменил бы стиль элементов при загрузке jQuery, чтобы CSS :hover
селекторы больше не действуют.
В вашем HTML вы могли бы иметь, например:
<a class="nav-link njs">My Link</a>
В вашем CSS:
.nav-link { color: #999999 }
.njs.nav-link:hover { color: #669900; }
В вашем JQuery:
$(".njs").removeClass("njs"); //Disable the hovers
Кроме того, я бы предложил здесь функцию, упрощающую просмотр этого кода:
$(function() {
$(".njs").removeClass("njs");
setColors(".nav-link", "#669900", "#999999");
setColors(".twit-link", "#0099CC", "#999999");
setColors(".rss-link", "#CC6600", "#999999");
setColors(".sidebar-item", "#669900", "#333333");
setColors(".archive-link", "#666666", "#999999");
setColors(".twit-link", "#0099CC", "#999999");
$(".sub").hover(function() {
$(this).animate({ 'background-color': '#336600'}, 250);
}, function() {
$(this).animate({ 'background-color': '#669900'}, 250);
});
$(".post-sb").hover(function() {
$(this).fadeIn(250);
}, function() {
$(this).fadeTo(250, 0.25);
});
});
function setColors(selector, hColor, nColor) {
$(selector).hover(function() {
$(this).animate({ color: hColor}, 250);
}, function() {
$(this).animate({ color: nColor}, 250);
});
}