2016-07-10 8 views
0

私はドロップダウンメニューのaddEventListenerを持っています。初めてクリックするとメニューが表示され、もう一度クリックすると正しく消えます。しかし、その後、私が再び試みると何も起こりません。私がif文を取り除き、関数内で単純な警告を使用すると、毎回動作しますが、このif文は面倒です。addEventListener "click"はif文で1回だけ実行されます

document.getElementById("menu").addEventListener("click",navigation); 
function navigation() { 
var navMenu = document.getElementById("navigation"); 
var list = document.getElementById("list"); 
if (navMenu.style.height == 0) { 
    navMenu.style.height = "190px"; 
    list.style.display = "flex"; 
} 
else { 
    navMenu.style.height = "0"; 
    list.style.display = "none"; 
} 
} 
+1

返される値です。 – undefined

+1

それは完全に働いた。説明ありがとう。 – Afn

答えて

0

私はこれについてわからないが、あなたは= 0代わりの= '0'を実行しようとしましたか?

私はこれが助けられ、幸運を願っています。

状態で
1

if (navMenu.style.height == 0)

if (navMenu.style.height == '0px')

を変更し、それが動作するはずです。

+0

ありがとう、それは完全に働いた。 – Afn

2

要素の高さはピクセルで報告されるため、このようなコードを更新すると効果があります。

if (navMenu.style.height === '0px') { 

はここので、あなたの条件_fails_が正常値をチェックするために、ほとんどのブラウザで「0PX」ではなく「0」になります `height`財産のcodepen http://codepen.io/anon/pen/ZOXAzd

+0

ありがとう、それは完璧に働いた! – Afn

関連する問題