[英]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.