【问题标题】:jQuery delay and javascript settimeout won't work with facebook buttonjQuery 延迟和 javascript settimeout 不适用于 facebook 按钮
【发布时间】:2014-01-31 19:35:17
【问题描述】:

我正在使用 socialite.js 在我的页面上放置社交按钮,社交按钮位于 div id="social" 中。 Div 最初是隐藏的(显示:无;)。

我打电话给Socialite.load($('#social')); 接下来想在延迟后显示这个 div,

我试过了:

$('#social').delay(4000).fadeIn(400);

和:

timeoutID = setTimeout(function(){ $('#social').fadeIn(400)}, 3000);

不管我想用哪种方法,IE和FF只显示g+和twitter按钮,但是FB按钮不见了,Chrome显示所有三个按钮。

除非没有超时:

$('#social').fadeIn(400);

这适用于所有浏览器。

有什么想法吗?

【问题讨论】:

  • Facebook 按钮在加载时无法隐藏,因为它在隐藏时根本不会加载。我想这是一个安全问题。最接近的方法是将其设置为零不透明度,因为这样可以。
  • 谢谢!我解决了,但由于声誉低而无法发布答案。

标签: javascript jquery facebook-like delay settimeout


【解决方案1】:

如果容器 div 被隐藏,Facebook 按钮将不会加载。 试试这个:

将不透明度设置为 0.0,在加载 fb 按钮后,将其更改为 1.0,然后隐藏 div。 现在您可以随时显示或隐藏它。

timeoutID = setTimeout(function(){
    $('#social').css("display", "none");
    $('#social').css("opacity", "1.0");
    $('#social').fadeIn(500)
}, 3000);

【讨论】:

    【解决方案2】:

    Facebook 按钮是否已加载到页面上但只是不可见?比如,它可能溢出了 div 吗?

    您是否检查过 IE 和 FF 中的开发者控制台,看看是否发生了任何在 Chrome 中没有发生的错误?如果按钮根本没有加载到页面上,这可能意味着 JavaScript 在到达代码中呈现 FB 按钮的位置之前就停止了。

    【讨论】:

    • 不,它没有加载,由社交名流或 Facebook 脚本创建的 iframe 是宽度:0 和高度:0。我检查了控制台,FF中没有特殊错误。
    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 2011-12-19
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多