При использовании load()
jQuery внутренне использует html()
для обновления вашего элемента. Это означает, что вы не можете применить к нему никакую анимацию, поскольку вы просто обновляете свойство innerHTML
элемента.
Вместо этого вам нужно написать собственный AJAX-запрос для получения нового HTML-кода, поместить его в элемент и затем вызвать fadeIn()
.
$('.menu a').live('click', function(event) {
var link = $(this).attr('href');
$('#content').fadeOut('slow', function() {
$.get(
link +' #content',
function(data) {
$("#primary").html(data).fadeIn('slow');
},
"html"
);
});
return false;
});
Я использовал get()
здесь, но вы могли бы так же легко использовать post()
или ajax()
.
Также, просто чтобы отметить, live()
устарела. Вместо этого вы должны использовать delegate()
или, если вы используете jQuery 1.7+, on()
.