почему вы используете hover, а затем mouseout вручную, когда сама функция hover связывает события mouseover / mouseout?
что не так с:
$('h2').hover(function() {
var e = $(this);
if (e.hasClass('main-active')){e.css('color','white');}
}, function() {
var e = $(this);
if (e.hasClass('main-active')){e.css('color','black');}
});
});
PS: это хорошая идея дляиспользуйте для этого только $ () и кэшируйте его в переменную, поэтому jQuery не нужно будет каждый раз анализировать элемент в объекте - как в приведенном выше коде: var e = $ (this)