我有這樣的JS代碼:JavaScript:變量是錯誤的,但是如果語句是真的?
var show = elm.hasClassName('level0') ? false : true;
if(show) {
doSomething()
}
我使用Firebug檢查顯示的值,並將其明確規定假。在調試時,我注意到doSomething函數被調用。我錯過了什麼?
使用if(false)不運行doSomething函數。
謝謝!
我有這樣的JS代碼:JavaScript:變量是錯誤的,但是如果語句是真的?
var show = elm.hasClassName('level0') ? false : true;
if(show) {
doSomething()
}
我使用Firebug檢查顯示的值,並將其明確規定假。在調試時,我注意到doSomething函數被調用。我錯過了什麼?
使用if(false)不運行doSomething函數。
謝謝!
試試這個
if(!elm.hasClassName('level0')) {
doSomething()
}
無論從任何代碼,您已經證明(!),我相信你的調試是錯誤的。可能是你所看到的
elm.hasClassName('level0')
值作爲 false
但是,var show = elm.hasClassName('level0') ? false : true;
意味着show
將被設置爲elm.hasClassName('level0')
逆只需添加一個alert(show)
如果條件上方,看到的是打印的內容。看到這個小提琴http://jsfiddle.net/g4Zqp/1/它工作得很好。
如果不是這種情況下,你需要把你的完整代碼
+1,這絕對是這種情況。或者他的'doSomething()'從代碼中的其他地方被調用:-) – Bergi 2013-04-11 15:14:14
嘗試'VAR秀=!elm.hasClassName(「0級」)',這是否有什麼區別? (!) – 2013-04-11 14:07:21
@ Kolink1:同樣的結果,它運行doSomething()... – user1856596 2013-04-11 14:08:53
不需要三元運算符,直接使用hasClassName – NimChimpsky 2013-04-11 14:10:07