var next = null;
if ( current.next().length ) {
if ( current.next().hasClass('show') ) {
next = $('div#rotator2 ul li:first');
} else {
next = current.next();
}
} else {
next = $('div#rotator2 ul li:first');
}
// ...
var processing = false; // флаг
var xhr = null; // тут храним запрос
$controls.on('change', function() {
if (processing) return; // если флаг есть, то выходим из обработчика
if (xhr && xhr.readyState !== 4) {
xhr.abort(); // отменяем запрос если он послан и пока ничего не вернул
}
processing = true; // устанавливаем флаг
startLoadingAnimation();
xhr = $.post("/engine/ajax/filter.php", $("#filter").serialize(), function(response) {
processing = true; // снимаем флаг как только пришел ответ от сервера
xhr = null; // сбрасываем текущий запрос
setTimeout(function() {
$('#dle-content').html(response);
stopLoadingAnimation();
// или в этом месте (в зависимости от задачи)
}, 3000);
});
});
// ...