Ваша проблема может заключаться в том, что новое изображение не загружается до тех пор, пока не исчезнет элемент DOM, содержащий его. Убедитесь, что изображение полностью загружено, прежде чем вызывать fadeIn ():
$("#some-image").fadeOut(function(){
var tgt = $(this),
img = new Image,
src = "new-src.png";
img.onload = function() {
tgt.attr('src', src).fadeIn();
};
img.src = src;
});
Еще лучше, загрузить изображение заранее:
<script>
// Outside of $(function() {})
function preload_img(src) {
var img = new Image;
img.src = src; // loads immediately, maybe even before DOMReady
}
</script>
Тогда вам не придется беспокоиться о том, было ли загружено изображение, когда пользователь запускает ваш fadeIn / Out.