2012-05-10 43 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