2015-09-21 61 views
0

我正在使用materializecss.com。任何幫助表示讚賞! 我喜歡它,當有人點擊一個按鈕時,它動態地創建一個新的標籤,然後它將用戶移動到。不過,我在做這項工作時遇到了問題(現在我的代碼毫無價值)。我將如何做到這一點?如何使用MaterializeCSS框架和Javascript動態創建選項卡?

謝謝!

代碼:

<div class="row"> 
<div class="col s12"> 
    <ul id="tabs" class="tabs"> 
     <li class="tab col s3"><a href="#test1">Test 1</a></li> 
     <li class="tab col s3"><a class="active" href="#test2">Test 2</a></li> 
     <li class="tab col s3 disabled"><a href="#test3">Disabled Tab</a></li> 
     <li class="tab col s3"><a href="#test4">Test 4</a></li> 
    </ul> 
</div> 
    <div id="tabsCollectionDiv"> 
     <div id="test1" class="col s12">Test 1</div> 
     <div id="test2" class="col s12">Test 2</div> 
     <div id="test3" class="col s12">Test 3</div> 
     <div id="test4" class="col s12">Test 4</div> 
    </div> 
    </div> 




<script> 
    function forwardFunction() 
    { 
     var randTabName = Math.floor((Math.random() * 1000) + 1); 
     $("tabs").append("<li class='tab col s3'><a href='"+randTabName+"'></a></li>"); 
     $("tabsCollectionDiv").append("<div id='"+randTabName+"' class='col s12'>""</div>"); 
     $('ul.tabs').tabs(); 
    } 
</script> 

編輯:鏈接代碼:https://jsfiddle.net/6agmr9e7/1/

+2

即使您的代碼毫無價值,我們仍然希望看到您迄今爲止所嘗試的內容。 –

+0

API文檔和源不看起來像這樣提供....將嘗試重新初始化插件後添加,看看會發生什麼 – charlietfl

+0

@charlietfl我做了 –

回答

1

這個版本似乎工作得相當好:

function forwardFunction() 
    { 
     var randTabName = Math.floor((Math.random() * 1000) + 1); 
     var $tabs = $('#tabs'); 
     $tabs.children().removeAttr('style');  

     $tabs.append("<li class='tab col s3'><a href='#"+randTabName+"'>New"+randTabName+"</a></li>"); 
     $("#tabsCollectionDiv").append("<div id='"+randTabName+"' class='col s12'>New"+randTabName+"</div>"); 

     // initalize tabs again, then select new tab 
     $tabs.tabs().tabs('select_tab', randTabName); 
    } 

DEMO

+0

謝謝!但是,執行removeAttr的原因是什麼,以及爲什麼當您再次初始化製表符時,您需要編寫兩次製表符? –

+0

需要刪除設置的寬度...和第一個標籤調用初始化它們,第二個設置活動標籤 – charlietfl

+0

所以我需要重新設置寬度之後還是自動? –

相關問題