Ваш подход правильный, однако я не вижу необходимости в тайм-ауте (если, конечно, вы не хотели его использовать)
Ваша логика выглядит примерно так:
$("img").hover(function () {
/* Dim everything but this img: */
$("img").not(this).stop().animate({ opacity: 0.5 });
}, function () {
/* animate all images back to fully visible. */
$("img").stop().animate({ opacity: 1.0 });
});
Все изображения видны при загрузке страницы и отсутствии мыши. Изображения, которые не являются скрытыми изображениями, затемнены.
Вот рабочий пример: http://jsfiddle.net/SJ7bp/