Да, уверен. Возможно, что у Вас не срабатывал animate, потому что для работы animate с цветом должен быть подключен плагин "Color animation".
$(function(){
var header = $(this).parents('article').find('h2 a');
$('.magic-box img').hover(function(){
$(this).animate({"background-color":"#000"}, 300),
header.animate({"color":"#ddd"}, 300);
}, function(){
$(this).animate({"background-color":"#fff"}, 300),
header.animate({"color":"#000"}, 300);
})
})
Такой код у меня не срабатывает. Но если инициализировать переменную в каждом ховерском mouseenter/mouseleave, то код работает. Как же, всё-таки, сделать эту переменную доступной для всех?