Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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选项卡处于非活动状态时,如何中断函数?_Javascript_Jquery_Function_Tabs - Fatal编程技术网

Javascript 当jquery选项卡处于非活动状态时,如何中断函数?

Javascript 当jquery选项卡处于非活动状态时,如何中断函数?,javascript,jquery,function,tabs,Javascript,Jquery,Function,Tabs,我有一个带有几个jqueryui选项卡的页面。每个选项卡都有一个html页面作为内容,这些页面每秒都会用一些变量的新值刷新 问题是,当选项卡处于非活动状态时,不应刷新这些值。这是一个交通和性能问题 所以我试着如下: $(function() { $( "#tabs" ).tabs({ activate: function( event, ui ) { //tried some things here if (ui.newTa

我有一个带有几个jqueryui选项卡的页面。每个选项卡都有一个html页面作为内容,这些页面每秒都会用一些变量的新值刷新

问题是,当选项卡处于非活动状态时,不应刷新这些值。这是一个交通和性能问题

所以我试着如下:

$(function() {
    $( "#tabs" ).tabs({
        activate: function( event, ui ) {
            //tried some things here
            if (ui.newTab.index() == 1){                    
                setInterval("GetStatus()",1000);                
            }
        }
    });
});
半途而废。当我打开索引为1的选项卡时,GetStatus函数每秒运行一次。但当我切换到另一个选项卡时,该函数仍在后台运行,这是不可取的

所以我尝试了类似的方法

ui.oldTab.empty(), ui.oldTab.unload() ....
但要么是我用错了,要么不是我需要用的

感谢您在前进中的帮助,
Flopo

您可以保留对间隔的引用,并在以后清除它:

$(function() {
    var statusInterval;
    $( "#tabs" ).tabs({
        activate: function( event, ui ) {
            //tried some things here
            if (ui.newTab.index() == 1){                    
                statusInterval = setInterval(function() { GetStatus(); }, 1000);                
            } else {
                clearInterval(statusInterval);
            }
        }
    });
});

请注意,最好将匿名函数或函数引用传递给setInterval,而不是字符串。

可能非常简单。从不用于清除间隔。谢谢!