元素没有显示在FireFox& Opera,但在Chrome& Safari正在运作

时间:2012-06-29 18:52:28

标签: javascript jquery css

我遇到一个问题,即Opera或Firefox上都没有显示元素。在Firefox上使用firebug我可以看到一个错误,说我用来初始化代码'的函数未定义'

现在就是这样,当我在Firefox浏览器上清空缓存时,我可以看到包含“facebook按钮”的元素并且错误消失了,但是一旦我刷新浏览器,我看不到我的元素和再次返回错误。我必须清空缓存才能再次看到按钮。

该元素应该用jQuery触发,以显示Facebook用户是否在线,如果没有,它将显示该按钮。但这只适用于Chrome& Safari,我相信IE8(我没有),但有人告诉我它有效。

这是在我的Javascript文件中显示元素的代码:

jQuery('#fbLogin').show();

现在,如果我要在我的.css文件中更改此内容:

#fbLogin {
display:none;
}

到此:

#fbLogin {
display:block;
 }

它会显示,但我看到的问题是它一直显示,如果用户登录则需要隐藏。我基本上有一个代码说.show按钮和.hide如果登录......

如果你想进一步了解,这里是一个页面的链接:

http://gullypost.com/entertainment/tim-westwood-kendrick-lamar-interview/

在Safari& Chrome你会注意到facebook按钮显示在右侧边栏上,但在其他浏览器上看不到。

有人可以帮我解决这个问题吗?感谢。

3 个答案:

答案 0 :(得分:1)

在尝试对没有定义高度的元素使用.show()时使用jQuery时有一个奇怪的问题。修复方法是显式或动态设置高度。

​$(selector).height(function() { return $(this).height() });​​

答案 1 :(得分:0)

看起来第二次加载页面时,您收到以下JavaScript错误:

fb_og_actions_init_vid is not defined

包含该功能的文件正在正确添加到页面中。我唯一的猜测是尝试移动对函数的引用:

fb_og_actions_init_vid("Connected to Facebook", "108821");

document.ready函数内:

$(document).ready(function(){
    fb_og_actions_init_vid("Connected to Facebook", "108821");
});

答案 2 :(得分:-1)

我相信这会奏效:

document.getElementById('fbLogin').style.display = 'block';