かなりシンプルな関数を書くのです。基本的には、いくつかのリンクがあるナビゲーションバーがあります。クリックすると、各リンクに以前表示されていたdiv:なしが表示されます。リンクをクリックすると、ナビゲーションバーが縮小して上に移動します。これは動作していますが、少し問題があるようです。アニメーションでJQuery関数が不思議に動作する
ナビゲーションバーのCSSを含む2つのクラスがあります。 "Before"はリンクがクリックされる前にナビゲーションバーのCSSを持つクラスです。 「After」はリンクがクリックされた後のもので、ナビゲーションバーが小さくなり、上に移動します。ナビゲーションバーのリンクにも同様のクラスがあります。
機能に継続時間を追加すると問題が発生します。ナビゲーションバーのクラスを "after"から "before"に変更し、開いているすべての "page"を閉じる "return"というリンクが1つあります。他のリンクがクリックされる前に、ナビゲーションバーに「after」クラスが追加される前にこのリンクをクリックすると、「after」クラスが追加されて削除されたようにナビゲーションバーが移動し、小さくなってから大きくなります再び。私はクリックされたときに何もしないで "戻る"リンクをし、ナビゲーションバーはまだ "前"の状態にします。
今の私のコードは次のとおりです。右のクラスが存在している場合にのみ実行されますので、私はとても機能を実行するとき、私は.hasClassを使用して関数にif文を追加しようとしました
$(document).ready(function(){
$("#main_index a").click(function(){
$("#main_index").addClass("after", 500);
$("#main_index a").addClass("after_link", 500);
});
});
$(document).ready(function(){
$(".return").click(function(){
$("#main_index").removeClass("after", 500);
$("#main_index a").removeClass("after_link", 500);
});
});
もはや動作しません。このコードは次のとおりです。私もここにものを探してみましたが、何もこれまで働いていない
$(document).ready(function(){
$("#main_index a").click(function(){
if(("#main_index").hasClass("before")) {
$("#main_index").addClass("after", 500);
$("#main_index a").addClass("after_link", 500);
}
});
});
$(document).ready(function(){
$(".return").click(function(){
if("#main_index").hasClass("after")) {
$("#main_index").removeClass("after", 500);
$("#main_index a").removeClass("after_link", 500);
}
});
});
。私はどこかでコードを台無しにしてしまいましたが、JQueryを使った初心者です。なぜ私がやっていることがうまくいかないのか分かりません。どんな助けもありがとう。
ここにjsfiddleを追加して、問題を簡単に知ることができますか?ありがとう:) – DevBert
申し訳ありませんが、私は仕事にjsfiddleを取得することはできません...前にそのサイトを使用したことがない – flyingstarship