У меня есть карусель jquery/javascript, который я использую, однако, если пользователь несколько раз нажимает кнопки навигации вправо или влево до завершения скрипта, он создает уродливую анимацию/винты вверх порядок карусели.Предотвращение запуска сценария дважды во время выполнения
Есть ли способ предотвратить повторное вызов этой функции (быстрый второй щелчок) во время ее выполнения?
$(document).ready(function() {
$('.inner-main li:first').before($('.inner-main li:last'));
});
function mainSlide(direction) {
var item_width = 940;
if (direction == 'left') {
var movement = parseInt($('.inner-main').css('left')) + item_width;
} else {
var movement = parseInt($('.inner-main').css('left')) - item_width;
}
$('.inner-main').animate({ 'left': movement }, 800, function() {
if (direction == 'left') {
$('.inner-main li:first').before($('.inner-main li:last'));
} else {
$('.inner-main li:last').after($('.inner-main li:first'));
}
$('.inner-main').css({ 'left': '-940px' });
});
}
попробовать положить .stop() перед .animate() –
пробовал, не работает, потому что когда пользователь нажимает на него, вызывает функцию, которая должна выполнять вычисления (var item_width), поэтому, когда пользователь нажимает несколько раз, он продолжает пересчитывать – user934902
ahh good point. Я бы попробовал 59-е предложение –