.fadeIn()
можно вызывать только в коллекциях jQuery. html()
возвращает строку, поэтому ее нельзя использовать для этого. Один из возможных путей - создать коллекцию jQuery из вашего HTML (которую вы хотите вставить), скрыть ее, затем добавить на свое место и затемнить.
Этот код делает это:
$('.overview li a').click(function(){
var $newstuff=
$("<img src="
+ $(this).attr('href')
+ ">"
+ "<br><div>"
+ $(">.desc", this).html()
+ '</div>').hide();
$('#large-img').append($newstuff.fadeIn('slow'));
return false;
});
jsFiddle Demo
И тот же код, немного более в стиле jQuery:
$('.overview li a').click(function(){
$('<img>').attr('src', $(this).attr('href'))
.add('<br>')
.add($('<div>').html($(">.desc", this).html()))
.hide()
.appendTo($('#large-img'))
.fadeIn('slow');
return false;
});
jsFiddle Demo 2