簡體   English   中英

Javascript中奇怪的if-else行為

[英]Odd if-else behavior in Javascript

我正在嘗試制作一個簡單的Javascript按鈕來在屏幕上切換菜單。 我有一個if-else語句,它可以檢測<nav>的當前位置並將其left CSS屬性更改為該效果。

聯合會

現在,正如您在我的代碼中看到的那樣,它將僅顯示菜單一次,但之后不會將其隱藏起來:

if (navStyle == '0') { setNav('-500px'); }
else { setNav('0'); }

這將正確地完成工作:

if (navStyle == '-500px') { setNav('0'); }
else { setNav('-500px'); }

對嗎? 有人知道發生了什么嗎?

這是因為寬度實際上永遠不會等於0,取決於您選擇的單位,寬度大約為0px。 您的第二組條件有效,因為它們先檢查寬度(500px),如果不匹配則選擇另一個(0px)。

您可以通過多種方式處理此問題,包括僅從0px中提取數字值,但是由於您已經可以使用此功能,因此將來需要注意這一點。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM