У меня есть четыре вкладки, одна из которых активна по умолчанию. При нажатии на неактивную вкладку она расширяется, а активная - уменьшается.
Проблема заключается в том, что во время анимации кликается неактивная вкладка.
$(document).ready(function(){
$('.tab').bind('click',function(){
if(!$(this).hasClass('activetab')){
$('.activetab').removeClass('activetab',500);
$(this).addClass('activetab',500);
}
});
});
Я знаю, что вопросы об укладке анимации задаются все время, но я не могу найти решение для этого конкретного примера.
Я не хочу, чтобы анимация была остановлена, отменена или поставлена в очередь. Я просто хочу, чтобы любые клики на любой другой вкладке полностью игнорировались, если анимация все еще продолжается.
Большое спасибо!
Добавьте глобальную переменную, чтобы указать, находитесь ли вы в состоянии анимации прямо сейчас. Установите значение true
в начале обработчика click
, вернитесь к false
в одном из методов обратного вызова методов анимации. И проверьте его, чтобы решить, следует ли вам войти в обработчик click
или нет. Я редактировал вам скрипку для примера http://jsfiddle.net/vSWdS/
var currently = false;
$('.tab').bind('click',function(){
if(!$(this).hasClass('activetab') && !currently){
currently = true;
$('.activetab').removeClass('activetab',500);
$(this).addClass('activetab',500, "swing", function(){
currently = false;
});
}
});