Essayez quelque chose comme ceci:
$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);
Il initialise les onglets avec l'option de cache de sorte que les onglets ne sont pas rechargés après avoir été chargés une fois. Il détermine ensuite le nombre total d'onglets et définit l'onglet suivant à charger en tant que 1 (les onglets sont indexés en commençant par 0) Ensuite, il lie un événement sur l'événement load pour commencer à charger l'onglet suivant jusqu'à ce qu'il les atteigne tous . Pour le démarrer, il charge ensuite le deuxième onglet.
Cela fonctionne très bien! Merci .. Est-il possible de précharger plusieurs onglets à la fois, au lieu de les charger l'un après l'autre? Aussi, est-il possible de mettre une image spinner à côté du texte de l'onglet? Je ne veux pas qu'il affiche "Chargement .." .. Il devrait juste être le texte de l'onglet ajouté avec l'image spinner pendant le chargement de l'onglet .. Merci d'avance .. – Balu
Le texte spinner est une option à envoyer to ui.tabs: $ abs = $ ('# tabs'). onglets ({ cache: true, spinner: '' }); – Lathan
voulez-vous dire que les onglets sont indexés en commençant par 1? Sinon, ce code semble ne jamais charger l'onglet 2 puisque vous l'incrémentez avant d'appeler la charge – Andrey