【问题标题】:Problem with Jquery, setInterval inside a Facebook iframeJquery的问题,Facebook iframe中的setInterval
【发布时间】:2011-07-19 16:54:33
【问题描述】:

我正在构建一个简单的 Facebook 标签。在 setInterval 和 JQuery 的帮助下,我有两个选项卡每 3 秒更改一次,直到用户与它们交互。他们取消了切换。

$(document).ready(function() {  

    $('#item2').hide();
    $('li#tab1').addClass('selected');

    var timer = setInterval(function () {
        $('div.item').fadeToggle('fast')
        $('li.tab').toggleClass('selected') ;
    }, 3000);   


    $(window).blur(function(){
        clearInterval(timer)
    })

    // setup. Set the first tab to selected
    $('li.tab').click(function(event) {
        clearInterval(timer);
        $('li.tab').toggleClass('selected') 
        $('div.item').fadeToggle('fast')
    });

});

这很好用……主要是。当我在页面上失去焦点一段时间(2-3分钟)并切换回来时,会出现问题,标签在恢复正常之前非常快速地来回切换一段时间。如果不在 iframe 中,我可以解决此问题:

$(window).blur(function(){
    clearInterval(timer)
})

这只是完全停止了开关。但是当页面在 Facebook 的 iframe 中时,这不起作用。任何人都可以提出解决方案吗?

【问题讨论】:

  • $(parent.window) 有效吗? (没有线索,只是一个想法)

标签: javascript jquery facebook iframe


【解决方案1】:

尝试使用 setTimeout 而不是 setInterval。

function doStuff(){
    //do some stuff
    setTimeout(doStuff, timeout);
}

setTimeout(doStuff, timeout);

这样,您只有在后台进行一次迭代,因此当用户切换回页面时它会立即闪烁一次(希望足够快以至于他不会注意到)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 2015-12-14
    • 1970-01-01
    • 2011-08-24
    • 2012-02-28
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多