私のコードに小さな問題があり、解決策が見つからない。私のページにはリンク付きのトップバー(ホーム、About、サインアップ)があり、各リンクはそれ自身のコンテンツを持っています。ユーザーが現在「ホーム」のコンテンツを表示していて、「情報」をクリックすると、そのページは「ホーム」のコンテンツを隠してから「情報」のコンテンツを表示することになっています。アニメーション中にブロックリンクを切り替える
しかし、コンテンツがアニメーション化されている間に別のリンクをクリックするとバグがあることに気づいたので、アニメーションがまだ進行中の場合に別のリンクに切り替えるのをブロックするために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; });
});
}
まず私は、関数が呼び出されたときfalse
にAllowLinkSwitch
を設定し、時にアニメーションが終了true
に設定しますが、変数が戻っtrue
に設定されることはありませんし、私は他のリンクに切り替えることはできません、上記コードはアニメーション機能の外側にthis.AllowLinkSwitch = true;
行を置いた場合にのみ機能しますが、そのバグがまだ発生しているため、そのような動作をしたくない場合は、アニメーションが終了したらtrue
に設定する必要があります。
ありがとうございました!それはちょうど素晴らしい仕事!この関数は実際にはコンストラクタに属していますので、私は同様の問題を抱えていた場所で使用するためにプライベートな "_this"を作成しました。ありがとうございます!私は何時間何時間も間違っていたかを調べようとしています... –