Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery存在问题,在Facebook iframe中设置间隔_Javascript_Jquery_Facebook_Iframe - Fatal编程技术网

Javascript Jquery存在问题,在Facebook iframe中设置间隔

Javascript Jquery存在问题,在Facebook iframe中设置间隔,javascript,jquery,facebook,iframe,Javascript,Jquery,Facebook,Iframe,我正在创建一个简单的Facebook标签。我有两个选项卡,在setInterval和JQuery的帮助下每3秒更改一次,直到用户与它们交互。这样他们就取消了切换 $(document).ready(function() { $('#item2').hide(); $('li#tab1').addClass('selected'); var timer = setInterval(function () { $('div.item').fadeTog

我正在创建一个简单的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中时,这就不起作用了。有人能提出解决办法吗

尝试使用setTimeout而不是setInterval

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

setTimeout(doStuff, timeout);

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

尝试使用setTimeout而不是setInterval

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

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

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