Изменение вашего кода, как показано ниже, должно работать.
В вашем коде вы перезаписываете цвет фона при настройке анимированного наведения.
Все, что вам нужно сделать, это установить флаг, чтобы этого не произошло. Когда элемент щелкается, я добавляю класс, чтобы установить его стиль, он также действует как флаг, чтобы гарантировать, что цвет не меняется при наведении.
$('.slide').click(function() {
$(".slide").each(function(i,elem) { // clear the style first
$(elem).removeClass("clicked");
});//so only ONE element is coloured SELECTED
$(this).addClass("clicked");//add the "selected" colour
});
$('.slide').hover(
function() {
if(!$(this).hasClass("clicked")) //check flag
{//then hover
$(this).animate({
backgroundColor: '#000'
}, 300);
}
},
function() {
if(!$(this).hasClass("clicked")) {
$(this).animate({
backgroundColor: '#999'
}, 200);
}
}
);
Вы должны иметь css
.clicked
{//set !important on the style so it overrides the .slide bg colour
background-color:#f09 !important;
}
1011 *
Обновленная скрипка: http://jsfiddle.net/wNTs7/23/