2014-02-19 21 views
0

嗨,我希望你能幫我解決這個問題,把我推上牆!淘汰賽js jquery-mobile collapsible-set不起作用

我有一個可摺疊的設置結構如下所示:

<div data-role="collapsible-set" data-bind="foreach: thisTemplateColumnList"> 
     <div data-role="collapsible"> 
      <h3 data-bind ="text: Name"></h3> 
      <p>I'm the collapsible set content for section 1</p> 
     </div> 
    </div> 

它正確顯示標題(列名),但可摺疊部分不工作,我看到了

我是第1部分的可摺疊設置內容

以及我不應該看到,直到可摺疊擴展。

我已經成功嘗試在靜態佈局中使用jquery-mobile可摺疊,並且工作得很好。爲什麼foreach:版本工作?

在此先感謝。 Steve

+0

何時jQuery的移動評估DOM做它的UI魔術。由於KO正在動態更新UI,因此您可能需要使用jQuery-mobile進行重新分析 –

+0

那麼,如何讓jQuery-mobile進行重新分析呢? – stevekershaw

+0

我沒有使用過這個插件,也找不到文檔中的任何內容,但是查看源代碼可能會有所幫助:第5318行$ .mobile.collapsible.prototype.enhanceWithin(e.target)。爲foreach添加一個afterRender選項並直接調用這個函數 –

回答

0

我也遇到過這個問題,並且通過改變標記來使用腳本模板來修復它。所以你的情況,標記更改爲:應用結合之後後來

<script type="text/html" id="template-column-list"> 
    <div data-role="collapsible"> 
     <h3 data-bind ="text: Name"></h3> 
     <p>I'm the collapsible set content for section 1</p> 
    </div> 
</script> 

<div data-role="collapsible-set" data-bind="template: { name: 'template-column-list', foreach: thisTemplateColumnList}"> 

</div> 

,你可能需要調用此代碼:

$('[data-role="collapsible-set"]').trigger('create');