Если JQuery UI является опцией, вы можете использовать .toggleClass(class, duration)
для этого.
Кроме того, вы, вероятно, можете упростить ваш селектор, похоже, что :even
и :odd
выполнят работу на основе вашего текущего селектора, например:
$(function() {
$('#menu li:even').hover(function() {
$(this).toggleClass('pretty-hover', 500);
});
$('#menu li:odd').hover(function() {
$(this).toggleClass('pretty-hover_01', 500);
});
});
Я понимаю, что вышеизложенное кажется задом наперед, но :even
действительно выбирает первый элемент, потому что он основан на 0, поэтому даже выбирает 0-й, 2-й, 4-й и т. Д. Я надеюсь, вы согласитесь, делает это немного легче поддерживать:)
Редактирование на основе комментариев - Так как .toggleclass()
придерживается быстрых наведений, вот альтернатива, которая работает, как и ожидалось, чуть дольше:
$('#menu li.post:even').hover(function() {
$(this).stop().animate({ backgroundColor: '#009FDD', color: '#FFF' }, 500);
}, function() {
$(this).stop().animate({ backgroundColor: '#FFFFFF', color: '#666' }, 500);
});
$('#menu li.post:odd').hover(function() {
$(this).stop().animate({ backgroundColor: '#623A10', color: '#FFF' }, 500);
}, function() {
$(this).stop().animate({ backgroundColor: '#FFFFFF', color: '#666' }, 500);
});