jQuery Tab кэширует TabID - PullRequest
       17

jQuery Tab кэширует TabID

1 голос
/ 09 февраля 2012

Я определил свои вкладки jQuery следующим образом:

 $('#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
});

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

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

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

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

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

К вашему сведению: вкладки находятся в DIV и объединены с функцией $.get.Поэтому я перезагружаю не всю страницу, а только div.

Перед новым запросом я уже очистил div с помощью .html(" "), и я также попытался

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

У кого-нибудь естьидея как удалить кеш TabID?

1 Ответ

0 голосов
/ 10 февраля 2012

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

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

Тогда у вас будет такая разметка для кнопок вкладок:

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

Будет создан контейнер вкладок с заголовком в качестве идентификатора (с заменой пробелов на подчеркивания):

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

Тогда вам придется соответствующим образом изменить выбранный вами метод.

...