У меня небольшая проблема с моим кодом и я не могу найти решение для него. На моей странице есть верхний бар со ссылками (Главная, О, Регистрация), каждая ссылка обладает собственным контентом. Предположим, что пользователь просматривает контент «Главная», а затем нажимает «О», страница должна скрывать содержимое «Главная», а затем показывать контент «О себе».Переключение блокировки канала во время анимации
Однако я заметил, что есть ошибка, если вы нажмете на другую ссылку, пока есть анимация контента, поэтому я создал переменную с именем AllowLinkSwitch
, чтобы заблокировать переход пользователя на другую ссылку, если есть еще анимация.
this.ContentHideThenShow = function(contentHide, contentShow, contentShowHeight)
{
this.AllowLinkSwitch = false;
$(contentHide).animate({
height: "0px"
}, 300, function(){
$(contentHide).hide();
$(contentShow).show();
$(contentShow).animate({
height: contentShowHeight
}, 300, function(){ this.AllowLinkSwitch = true; });
});
}
Сначала я поставил AllowLinkSwitch
к false
, когда функция вызывается, а затем установить его true
когда анимация заканчивается, но переменная никогда не устанавливается обратно в true
и я не могу перейти к другим ссылкам, выше код работает только в том случае, если я помещаю строку this.AllowLinkSwitch = true;
вне функции анимации, но я не хочу, чтобы она работала так, потому что эта ошибка все еще происходит, мне нужна эта переменная, которая должна быть установлена в true
после окончания анимации, может кто-то помочь?
Спасибо! Это сработало просто отлично !!! Эта функция фактически принадлежит конструктору, как вы могли заметить, поэтому теперь я создал частную «_this», чтобы использовать ее там, где у меня были подобные проблемы, большое вам спасибо! Я пытался узнать, что с ним не так в течение нескольких часов ... –