私がやろうとしているのは、span
いいえ 。あなたがしようとしているのは、「...をクリックしたとき」です。span
その後、いくつかの要素DIV
がフェードアウトします
...adiv
がフェードアウトします。
それ以外の場合は、もう一度クリックしますspan
「そうでなければ、もう一度クリックしてください」と誰かが言うのを聞いたことがありますか? それがあなたの話し方でないなら、あなたもそれを書くべきではありません。
あなたが説明しようとしているのは、もう一度クリックしたときに何が起こるかですspan
。実際には が何回span
クリックされたかは重要ではありません。重要なのは の状態ですdiv
。あなたが説明していることは、スパンがクリックされたときに何が起こるかに戻ります。
それらの要素はフェードインします。
つまり、これまでに言おうとしたことは次のとおりです。
スパンをクリックするときは、adiv
が表示されているかどうかを確認してください。ある場合はフェードアウトし、そうでない場合はフェードインします。
そこで、css() を使用して、その中に残っている要素のスタイルを変更していDIV
ます。
あなたが言おうとしているのは、div
jQueryのcss
メソッドを使用してスタイリングもしているようです。コードの状態を考えると、これは (ほとんどの場合) そのように見えます。
css
メソッドを使用しないでください。
css
動的なスタイルが絶対に必要な場合は、jQuery のメソッドを使用すると便利です。ほとんどの場合、ほとんどの人は動的なスタイルを必要としません。ほとんどの場合、ほとんどの人は動的なスタイルセットを必要とします。これらは、スタイルシートに残すべきクラスとして表現するのが最適です。HTML は.html
ファイルに属し、JS は.js
ファイルに属し、CSS はファイルに属し.css
ます。
したがって、本当に必要なのは、div
アニメーションが終了したときにクラス (または複数) を変更することです。
そのすべてを、コードを書くことさえしません。すべてを結び付けるために、一般的に次のことを行います。
$('.some-span').on('click', function () {
//when you click on a span
var divIsVisible;
//check whether a div is visible
divIsVisible = $('.some-div').is(':visible');
if (divIsVisible) {
//if it is, fade out
$('.some-div').fadeOut(function () {
//when it's done fading out, add some classes
$(this).addClass('is-hidden');
//add other classes
});
} else {
//else fade in
$('.some-div').fadeIn(function () {
//when it's done fading in, remove some classes
$(this).removeClass('is-hidden');
//remove other classes
});
}
});