2012-07-19 35 views
0

杉杉,我創建與下面的代碼標籤:爲什麼在jquery中添加新選項卡時沒有內容?所有的

<div id="statsTabs" style="width:100%; height:100%"> 
    <ul> 
     <li><a href="#f-campaign"><span>廣告系列</span></a></li> 
     <li><a href="#f-adgroup"><span>廣告組</span></a></li> 
    </ul> 
</div> 
<div id="f-campaign">...</div> 
<div id="f-adgroup">...</div> 
<script> 
    $(document).ready(function() { 
    $("#statsTabs").tabs(); 
    }); 
</script> 

每一件事情的工作很好,但是當我嘗試下面的代碼,我得到了一些問題:

$("#statsTabs").tabs("remove" , 0); 
$("#statsTabs").tabs("add", '#f-campaign', "廣告系列" , 0); 

的新選項卡標籤「廣告系列」出現,但沒有內容,爲什麼?由於第一個代碼段獲得了#f-campaign的內容。

回答

0

這樣的:$("#statsTabs").tabs("remove" , 0); 刪除的li和關聯的div也是如此,因此當您再次添加選項卡時,它沒有預期的內容。

+0

所以有一種方法可以刪除標籤,但保留關聯的div?因爲我以後需要它。 – 2012-07-19 08:41:57

+0

如果禁用它對您來說已經足夠了,您可能需要閱讀[this](http://jqueryui.com/demos/tabs/#method-disable)(jquery ui選項卡的文檔,有一種方法稱爲禁用這可以禁用一個選項卡給其indes) – 2012-07-19 08:45:23

+0

是的,即使它不美麗,我可能會禁用它。 – 2012-07-19 08:55:45

0

當您調用Remove函數時,它將刪除選項卡和內容。

這就是您不能再添加它的原因。您需要重新構建才能執行此操作。

我做了一個JS撥弄着一個console.log()演示了此:http://jsfiddle.net/Allan/2YcBh/

您可以通過使用這樣的回調函數避免這種情況:

$(document).ready(function() { 
    $("#statsTabs").tabs({ 
     remove: function(event, ui) { 
     // Back up the content here, or simply move the tab so that you can add it again later. 
     } 
    }); 
    $('input').click(function() { 
     $("#statsTabs").tabs("remove" , 0); 
     console.log($('#f-campaign')); 
     $("#statsTabs").tabs("add", '#f-campaign', "廣告系列" , 0); 
    }); 
});​ 
+0

對不起,我在提出上述問題時出錯,原始代碼是

...
。我的問題是,添加標籤中沒有內容。 – 2012-07-19 08:29:50

+0

你還需要在id =「statsTabs」div中有兩個標籤,你有這個嗎? – 2012-07-19 08:35:32

+0

是的,我有兩個選項卡。 – 2012-07-19 08:40:28

相關問題