繁体   English   中英

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

[英]jQueryUI: Reload all tabs at once

我正在尝试一次重新加载所有打开的标签。 我使用代码

var length = $("#tabs").tabs("length");
for(var i = 0; i < length; i++){
    $("#tabs").tabs("load", i);
}

它完美地遍历循环,但只有最后一个选项卡真正重新加载。

有人帮忙吗?

问题是选项卡小部件只允许在任何时候发生一个加载操作,因此您观察到它是最后一个正在更新的选项卡,其他选项卡不是。

所以,你必须用另一种方式来做。 首先,我假设您已将缓存选项设置为 true。 如果没有,则继续没有意义,因为选项卡在激活时会刷新。

一旦当前加载操作完成,您将要做的是为下一个选项卡启动下一个加载操作。 最简单的方法是拥有一个需要加载的选项卡队列,并在选项卡上设置一个load事件处理程序(加载选项卡时它会被触发)。

这是一个削减它。 它可以整理一下,当然,但至少它给了你我的意思的味道:

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();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM