2012-02-09 4 views
1

Я определил мои вкладки JQuery, как это:JQuery Tab кэширование табетического

$('#serviceTabs').tabs({ 
    idPrefix: 'ui-subtabs-', 
    spinner: 'Retrieving data...', 
    cache: false, 
    select: function(event, ui) { 
     if(checkServiceTabs(ui.index)) 
     { 
      $('#ui-subtabs-'+(currentDetailTab+1)).html(" "); 
      currentDetailTab = ui.index; 
      return true; 
    } 
     else 
      return false; 
    }, 
    collapsible: true 
}); 

К сожалению, после перезагрузки моей страницы индекс моих закладок поднимаются постепенно. Так что по первому требованию моих табетический посмотрим, как:

#ui-subtabs-1, #ui-subtabs-2, #ui-subtabs-3 

после перезагрузки моей страницы выглядит так:

#ui-subtabs-4, #ui-subtabs-5, #ui-subtabs-6 

Побочный эффект есть, что вкладки будут заблокированы после перезагрузки. Событие select больше не работает.

FYI: вкладки находятся в DIV и объединены с функцией $.get. Так что я не перезаряжаю всю страницу, а только div.

До нового запроса я уже пустой, ДИВ с .html(" ") и я также попытался

$('#serviceTabs').tabs("destroy"); 

Кто-нибудь есть идеи, как удалить кэш табетического?

ответ

0

К сожалению, tabIndex переменные, из которой табетические исходят из воплощен в анонимной функции плагина Tabs, что делает его абсолютно невидимым для внешнего мира . Он только увеличивается, и плагин не предлагает метода для его сброса. Даже уничтожение экземпляра плагина не помогло бы.

На странице overview документации плагина указано, что контейнеры вкладок могут быть ссылками, используя атрибут Title элементов , служащих в качестве кнопок вкладок.

Вы бы тогда этот вид разметки для кнопок вкладки:

<li><a href="hello/world.html" title="My Tab 1"> ... </a></li> 

Это будет создавать вкладки контейнеры с названием как ID (заменяя пробелы подчеркиванием):

<div id="My_Tab_1"> ... </div> 

Вы бы затем изменить способ выбора соответствующим образом.