0
我试图一次性重新加载所有打开的标签。 我使用的代码jQueryUI:立即重新加载所有标签
var length = $("#tabs").tabs("length");
for(var i = 0; i < length; i++){
$("#tabs").tabs("load", i);
}
它通过循环迭代完美,但只有最后一个选项卡真的重新加载。
有人帮忙吗?
我试图一次性重新加载所有打开的标签。 我使用的代码jQueryUI:立即重新加载所有标签
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();
});
你们是不是要重新加载单独的浏览器选项卡,或者你有一个使用选项卡组织在你的页面数据? – 2011-06-13 17:02:43
我正在使用jQueryUI选项卡。他们是我的页面内的标签。 – Bart 2011-06-13 17:04:23