JavaScriptの値に応じてCSSプロパティを前後に設定しようとしています。JavSacriptを使用してCSSスタイルを元に戻さない
クラス名 'menu'はページの読み込み時に非表示に設定されています。私はそれを目に見えるように設定するよう呼びかけます。しかし、私は再びそれを変更するためにそれを呼び出すと、それを隠してはいません。常に可視に設定されているように見えます。
let menu = document.querySelector('.menu');
if (menu.style.visibility = 'hidden') {
menu.style.visibility = 'visible';
console.log('visible'); // always shows this.
} else {
menu.style.visibility = 'hidden';
console.log('hidden'); // doesn't get to here when .menu is visible.
}
私はそれが第1、第2なく行うことができます理由として混乱しています。私は他の特定を持っ試してみました:
else if (menu.style.visibility = 'visible')
私もsetAttributeメソッドを使用してみましたが、それは常に同じ結果です。
私は前後に切り替えることができる必要があります。
なぜあなたはjQueryのを使用していません? –
あなたのコードの問題は、あなたの条件で単一の等号を使用していることです。これは、可視性が "可視"に等しいかどうかをチェックしません。実際に可視性に文字列 "可視"を割り当てます(または少なくとも試みます)。条件に2つまたは3つの等号を使用して、等価性をチェックします。 3つの等号が好ましい方法です。 –