2009-11-12 21 views
6

所有,预紧JQuery的UI选项卡的背景

我怎样才能下载所有的JQuery UI选项卡,而第一个选项卡仍在加载?我已经尝试了远程:真正的选项,但它没有工作?每个标签名称旁边应该有ajax旋钮,而标签正在加载。

感谢

回答

10

尝试这样:

$tabs = $('#tabs').tabs({ 
    cache: true 
}); 
var total = $tabs.find('.ui-tabs-nav li').length; 
var currentLoadingTab = 1; 
$tabs.bind('tabsload',function(){ 
    currentLoadingTab++; 
    if (currentLoadingTab < total) 
     $tabs.tabs('load',currentLoadingTab); 
    else 
     $tabs.unbind('tabsload'); 
}).tabs('load',currentLoadingTab); 

它初始化与缓存选项,以便他们已经加载一次后,标签不重新加载的标签。 然后它找出标签的总数并设置下一个标签加载为1(标签索引从0开始) 然后它绑定加载事件上的一个事件,开始加载下一个标签,直到它已经全部打开。要开始它然后加载第二个选项卡。

+0

这个伟大的工程!谢谢..是否有可能一次预加载多个选项卡,而不是一个接一个地加载它们?另外,是否可以在标签文本旁边放置微调图像?我不希望它显示“加载..”..它应该只是在标签加载时附加旋钮图像的标签文本。 在此先感谢.. – Balu 2009-11-12 21:40:53

+0

微调器文本是一个选项发送({ 缓存:真, 微调:'' }); – Lathan 2010-03-16 18:39:22

+0

你的意思是标签索引是从1开始的吗?否则,这段代码看起来好像永远不会加载标签2,因为你在调用加载之前增加了 – Andrey 2011-03-07 01:09:35

0

更优雅的解决方案比上面:

$tabs = $('#tabs').tabs({ 
    cache : true, 
    load : function(event,ui) { 
     try { 
      $tabs.tabs('load',ui.index+1); 
     } catch (e) { 
     } 
    } 
}); 
+0

每当你点击一个不同的标签时,这不会重载所有后续标签吗?所以说我一次一个地浏览标签。当我点击第一个标签时,所有的标签都会被加载。然后,当我点击第二个标签时,2之后的所有标签将再次加载***。 – Travesty3 2013-04-18 12:45:46