6

全て、

最初のタブがまだロードされている間にすべての JQuery UI タブをプリロードするにはどうすればよいですか? remote:true オプションを試しましたが、うまくいきませんでしたか? タブの読み込み中は、各タブ名の横に ajax スピナーが表示されます。

ありがとう

4

2 に答える 2

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 イベントにイベントをバインドして、すべてのタブにヒットするまで次のタブのロードを開始します。それを開始するには、2番目のタブをロードします。

于 2009-11-12T21:11:02.453 に答える
0

上記よりもエレガントなソリューション:

$tabs = $('#tabs').tabs({
    cache : true,
    load : function(event,ui) {
        try {
            $tabs.tabs('load',ui.index+1);
        } catch (e) {
        }
    }
});
于 2012-03-01T14:12:41.877 に答える