2015-09-01 41 views
0

您好我通過這樣的功能在JS創建了一個簡單可摺疊的div:JQuery的可摺疊事業部只出現正確首次

function createColDiv() { 
    return '<div data-role="collapsibleset" data-theme="a" data-content-theme="a">' + 
    '<div data-role = "collapsible">' + 
    '<h2>Sub0001</h2>' + 
    '</div>' + 
    '</div>'; 
} 

這是創建一個可摺疊的DIV之前出現在表格另一個函數內部完成,像這樣:

function build() { 
    var windowContent = '<table id="tabellaGallery" class="ui-body-d ui-shadow ui-responsive table-stripe" data-column-btn-theme="b" style="width:100%; margin:0px; border:0px solid black; border-collapse: collapse;">' + 
    '<tr style="text-align: center; border-bottom: 1px solid #AFAFAF" ><td align="center" style="text-align: center; font-weight: bold" colspan="2">Table Title</td></tr>' + 
    '<tr class="bb" style="vertical-align: middle;min-width: 150px;padding-left:0.3em">' + 
      '<td style="vertical-align: middle;min-width: 150px;padding-left:0.3em">Data di nascita</td>' + 
      '<td align="right" style="vertical-align: middle; padding-left:0.5em;padding-right:0.4em">14091947</td>' + 
    '</tr>' + 
    '<tr class="bb" style="vertical-align: middle;min-width: 150px;padding-left:0.3em">' + 
      '<td style="vertical-align: middle;min-width: 150px;padding-left:0.3em">Luogo di nascita</td>' + 
      '<td align="right" style="vertical-align: middle; padding-left:0.5em;padding-right:0.4em">L378</td>' + 
    '</tr>' + 
    '</table>' + 
    createColDiv(); 

    $('#myPage').html(windowContent); 
} 

然後,我將所有的html添加到頁面$('#myPage').html(windowContent);。問題是,我第一次進入該網頁,我可以正確地看到我的可摺疊的div像這樣:

enter image description here

但當時如果我再次進入我看到我的「可摺疊格」是這樣的:

enter image description here

它甚至不是一個按鈕,只是純文本..我做錯了什麼?

+0

這將是你不錯在'build'函數中發佈完整的代碼以供我們重複使用 –

+0

「我第一次進入那個頁面」和「但是如果我再次進入」是什麼意思? – jonmrich

+0

當我第一次進入'#myPage'頁面時,返回到主頁,然後再回到那個頁面... – ayasha

回答

1

看起來您正在使用jQuery Mobile

如果是這樣,當頁面被加載時,腳本(jquery-ui)「讀取」元素(按鈕,列表等)的屬性並由它們添加類。

如果你只是添加一個html標記,你需要腳本再次運行並「做他的魔力」。

如果我是正確的,到目前爲止,閱讀了這個問題:Dynamically Add Buttons Via JQuery Mobile

總之,你必須運行此:(上的一個按鈕,例如)

$("your_button_selector").button().button('refresh'); 
+0

是的我認爲這是問題的感謝。但由於我不是一個按鈕,而是一個可摺疊的設置,唯一的方法是使用.trigger(「create」);正如這裏所說http://www.gajotres.net/jquery-mobile-and-how-to-enhance-the-markup-of-dynamically-added-content/。它的工作原理,但隨後所有其他頁面變化,併成爲一個混亂:divs被移動到所有。 – ayasha

+1

我不認爲它應該發生。檢查此http://jsfiddle.net/3tcjfohL/ –

+0

謝謝!這工作沒有問題$('[data-role =「content」]')。trigger('create'); – ayasha