jQueryUI:一次重新加载所有选项卡

问题描述

| 我正在尝试一次重新加载所有打开的标签页。 我使用代码
var length = $(\"#tabs\").tabs(\"length\");
for(var i = 0; i < length; i++){
    $(\"#tabs\").tabs(\"load\",i);
}
它完美地循环遍历了循环,但是只有最后一个选项卡才真正重新加载。 有人帮忙吗?     

解决方法

        问题在于,选项卡小部件仅允许一次在任何时间进行一次加载操作,因此您观察到它是最后一个正在更新的选项卡,而其他选项卡则没有。 因此,您将不得不采用另一种方式。首先,我假设您已将cache选项设置为true。如果没有,则继续没有意义,因为该选项卡在激活后会刷新。 当前加载操作完成后,您将要做的是为下一个选项卡启动下一个加载操作。最简单的方法是让需要加载的选项卡队列,并在选项卡上设置一个“ 1”事件处理程序(在加载选项卡时将其触发)。 这是一个削减。可以整理一下,当然可以,但是至少可以让您感受到我的意思:
var $tabs = $(\"#tabs\").tabs({
    cache: true,load: function (event,ui) {
        loadNextTab();
    }
});

var tabLoadQueue = [];

var loadNextTab = function() {
    if (tabLoadQueue.length) {
        var nextTab = tabLoadQueue.pop();
        $tabs.tabs(\"load\",nextTab);
    }      
};

$(\"#load\").click(function() {
    var length = $tabs.tabs(\"length\");
    for(var i = 0; i < length; i++){
        tabLoadQueue.push(i);
    }
    loadNextTab();
});