在后台预加载JQuery UI选项卡

时间:2009-11-12 18:28:27

标签: jquery jquery-ui jquery-ui-tabs

所有

如何在第一个标签仍在加载时预加载所有JQuery UI标签?我尝试过remote:true选项,但它没有用?在加载选项卡时,每个选项卡名称旁边应该有ajax微调器。

由于

2 个答案:

答案 0 :(得分: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开始编制索引) 然后它绑定load事件上的事件以开始加载下一个选项卡,直到它击中所有选项卡。要启动它,然后加载第二个选项卡。

答案 1 :(得分:0)

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

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