1

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

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

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

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

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

现在,如果我要在我的 .css 文件上更改它:

#fbLogin {
display:none;
}

对此:

#fbLogin {
display:block;
 }

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

如果您想进一步了解,这里有一个页面链接:

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

在 Safari 和 Chrome 上,您会注意到 facebook 按钮显示在右侧边栏上,但在其他浏览器上不可见。

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

4

3 回答 3

1

.show()尝试在没有定义高度的元素上使用 jQuery 时,会出现一个奇怪的问题。解决方法是显式或动态设置高度。

​$(selector).height(function() { return $(this).height() });​​
于 2012-06-29T18:58:10.657 回答
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");
});
于 2012-06-29T19:09:58.057 回答
-1

我相信这会奏效:

document.getElementById('fbLogin').style.display = 'block';
于 2012-06-29T19:06:25.963 回答