Мое решение включает добавление класса disabled
для изменения правил CSS для него, а также предотвращения поведения по умолчанию с использованием метода JavaScript preventDefault()
.Также в конце анимации будет вызвана функция дополнительного параметра callback
.В этом случае функция обратного вызова удалит disabled
class.
var slideContainer = $('#slider');
var width = 720;
function slide(event) {
if(!slideContainer.hasClass('disabled')) {
slideContainer.addClass('disabled');
slideContainer.animate({'margin-left': '-='+width}, 200, function(){
slideContainer.removeClass('disabled');
});
}
else {
event.preventDefault();
}
}
.disabled {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="slider" class='button' onclick='slide()'>Test</a>