2011-11-23 68 views
0

我正在開發我的第一個jquery-mobile應用程序,並且對於web開發和java腳本都很新。通過jquery編輯html時,jquery-mobile css樣式消失

我在我的內容部分下面的HTML:

 <div data-role="collapsible" data-collapsed="false" data-content-theme="c"> 
      <h3>Results</h3> 
      <p id="UnitResult"> Results.. </p> 
     </div> 
     <div data-role="collapsible" data-collapsed="true" data-content-theme="c" > 
      <h3 id ="ShowAllh3">Show all</h3> 
      <ul id="AllUnitsResult" data-role="listview" data-inset="true" data-theme="d"> 
       <li>list element</li> 
       <li>list element 2</li> </ul> 
     </div> 

我也有一個<input type="number" .... onchange="calculate()>,並在計算功能我做了以下(其中包括):

$('#UnitResult').html(volume + " " + fromText + " equals " + result + " " + toText + "."); 
$('#ShowAllh3').text('test'); 
for(var i = 0; i < resultArray.length; i++) { 
    $('#AllUnitsResult').append('<li class = "number">' + Units[i].name + ': ' + resultArray[i] + '</li>'); 
} 

這個問題我有,這些元素的風格改變時,我實時添加新的html標籤,有沒有什麼辦法可以避免這種情況?

功能之前被稱爲:

Before function is called:

功能後稱爲:

enter image description here

你可以看到被添加到列表中的新元素看起來很奇怪,和標題是「顯示所有」,改爲「測試」,但格式不見了。

+1

你應該避免插入HTML,而是使用DOM操作。 – Viruzzo

+0

如何做到這一點的任何鏈接? – randoms

+0

首先創建一個像這樣的元素'e = document.createElement(tagName);',修改它的屬性,然後像以前一樣將它附加到#AllUnitsResult。 – Viruzzo

回答

0

解決列表問題:

$("#AllUnitsResult").listview("refresh");