我正在尝试立即重新加载所有打开的标签页。 我使用代码
var length = $("#tabs").tabs("length");
for(var i = 0; i < length; i++){
$("#tabs").tabs("load", i);
}
它完美地遍历循环,但只有最后一个标签真正重新加载。
任何有帮助的人?
答案 0 :(得分:1)
问题是标签小部件只允许在任何时间进行一次加载操作,因此您会发现它是最后一个正在更新的标签,而其他标签则没有。
所以,你必须以另一种方式去做。首先,我假设您已将缓存选项设置为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();
});