$.ajax({
url: 'engine/ajax.php',
data: ({link : link,}),
type : "POST",
success: function (data) {
$("#menu li").removeClass("active");
$(".left").html(data).css("opacity","0").animate({opacity:'1'},1500);
},
error: function(){
alert ("No PHP script: ");
}
});
$(this).addClass("active");
return false;
Господа, никто не заметил, что классы удаляются в success для ajax, а назначается класс вне ajax функций?
Дело в том что выполняется асинхронный запрос. Т.е. обработчик кода доходит до функции ajax, запускает его в отдельном потоке и идет дальше. Т.о. сначала успевает отрабатывать назначение класса, а уже после приходит ответ от сервера, и по успеху - убираются классы.
Решение поставьте обе строки
$("#menu li").removeClass("active"); и $(this).addClass("active"); друг рядом с другом. например:
var elem = $(this);
$.ajax({
url: 'engine/ajax.php',
data: ({link : link,}),
type : "POST",
success: function (data) {
$("#menu li").removeClass("active");
elem.addClass("active");
$(".left").html(data).css("opacity","0").animate({opacity:'1'},1500);
},
error: function(){
alert ("No PHP script: ");
}
});
return false;
и будет вам щастя