2012-05-10 44 views
1

剛纔意識到我的網站確實是而不是在IE中正常工作。它適用於Chrome和Firefox。在IE中,問題在於,受javascript影響的元素,並沒有出現。我啓用了Javascript,所以我不知道它與其他瀏覽器有什麼不同。Javascript不能在IE中工作

這是當我使用的toggle_visibility功能:

function toggle_visibility_1(id) { 
    var e = document.getElementById(id); 
    if(e.style.display = 'inline') 
    e.style.display = 'none'; 
} 
function toggle_visibility_2(id) { 
    var e = document.getElementById(id); 
    if(e.style.display = 'none') 
    e.style.display = 'inline'; 
} 

該網站是在這裏:當然http://www.dillonbrannick.com/ ,也不會有明顯的問題,除非在IE中,如果在IE瀏覽器可能不很明顯,所以希望我已經描述得很好。

如此看來,我有點固定作品一樣,應該在這裏看到,如果你想這個問題:http://testerwebby.tumblr.com/所以我不知道我做什麼,但我會很快把它推廣到我的網站,感謝所有的幫助。

+2

JavaScript中的'='和'=='/'==='完全不同。你很幸運,它可以在Chrome和Firefox中使用。 – kapa

+0

@bažmegakapa讓它成爲答案! –

+1

@AndrewMarshall現在沒有時間現在就做出高質量的答案。我希望有人會複製我的評論,並將其作爲回答發佈:)。 – kapa

回答

8

您正在執行任務,而不是比較:

// Sets the value of display 
if (e.style.display = 'none') 

您應該使用==(值)或===(價值型)來測試平等:

// Tests the value of display 
if (e.style.display == "none") 

如果你想要的要做的是在inlinenone之間切換,下面的表現會更好:

function toggle_visibility(id) { 
    var e = document.getElementById(id); 
    e.style.display = (e.style.display === "none") ? "inline" : "none" ; 
} 

演示:http://jsbin.com/uyawop/edit#javascript,html

+1

一般來說,去三重平等,因爲它比二重平等更嚴格。在這種情況下,雖然沒有區別。 – Havvy

+0

我無法得到這個工作,當我只將='none'改爲=='none'時,它可以工作,但是當我在兩個函數上都這樣做時,什麼都不會發生。 – dillonbrannick

+0

哎呦,點擊進入返回,但它張貼。所以當我使用你的第三段代碼時,它會不斷地切換和切換,我希望它只切換一次。甚至當我使用你的代碼時,它仍然不能在IE中工作。謝謝所有的迴應,但我認爲還是有問題。 – dillonbrannick