2012-02-09 53 views
1

我定義我的jQuery的標籤是這樣的:jQuery的標籤是緩存TabID

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

副作用是,該標籤被重新加載後鎖定。選擇事件不再起作用。

僅供參考:這些選項卡位於DIV中,並與$.get函數合併。 所以我不重新加載整個頁面,但只有div。

了新的要求之前,我已經空白與.html(" ")股利和我也試過

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

有誰有一個想法如何刪除TabID緩存?

回答

0

不幸的是,TabID來自的tabIndex變量被封裝在Tabs插件的匿名函數中,使得外部世界完全不可見。它只會增加,插件沒有提供方法來重置它。即使摧毀插件的實例也無濟於事。

儘管在插件文檔的overview頁面上,指定的標籤容器可以是使用作爲標籤按鈕的<a>元素的Title屬性的引用。

你必須那麼這種標記的標籤按鈕:

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

這將創建標籤的容器與標題ID(用下劃線代替空格):

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

你會然後要修改你的選擇方法。