2011-10-26 53 views
1

首先,我調用getJSON來下拉合適的數據。然後,我使用以下代碼更新已有的<a href=""></a>元素。當內容更新時,JQuery Mobile失去格式化

$.getJSON("http://URL.com?unitnumber="+query+"", function(data) { 
    var encounter = $('#encounter'); 
    $.each(data, function(i) { 
     if(i==0){ 
      $('#date1').text(""+data[i].DateDisp+"").trigger('create'); 
     } 
    }); 
}); 

初始<a>元素的格式正確無誤

enter image description here

但只要我更新的鏈接元素中的文本(ID爲#DATE1),我失去了格式化。儘管這是試圖用.trigger(「創造」)......

enter image description here

+0

檢查出來http://stackoverflow.com/questions/10294049/jquery-mobile-checkbox-loses-style –

回答

0

您可以使用jQuery Mobile的添加到您的按鈕結構(<a>標籤),僅更換按鈕上的文字。下面是一個按鈕的示例的jQuery後移動已經風格它:

<a data-role="button" data-theme="c" class="ui-btn ui-btn-corner-all ui-shadow ui-btn-up-c"> 
    <span aria-hidden="true" class="ui-btn-inner ui-btn-corner-all"> 
     <span class="ui-btn-text">Updated Text (6)</span> 
    </span> 
</a> 

A注:按鈕的上述HTML結構爲jQuery Mobile的1.0RC2。

請注意<span>ui-btn-text類。你想要做的就是瞄準這個<span>並改變它的文本,如果你試圖改變整個<a>標籤的文本,你將失去內置<span>標籤樣式的按鈕。

所以你的選擇應該是這樣的:

$('#date1').find('.ui-btn-text').text(...); 

而且你將不必使用.trigger('create')因爲造型也不會丟失。

下面是上述解決方案的的jsfiddle:http://jsfiddle.net/jasper/4DAfn/3/

另外,如果你迭代通過你返回的JSON數據,並且僅使用信息的第一排,然後考慮更換如下:

$.each(data, function(i) { 
    if(i==0){ 
     $('#date1').text(""+data[i].DateDisp+"").trigger('create'); 
    } 
}); 

附:

$('#date1').text(""+data[0].DateDisp+"").trigger('create'); 

或者你可以只return false;內的if語句(這將打破$.each()迴路):

$.each(data, function(i) { 
    if(i==0){ 
     $('#date1').text(""+data[i].DateDisp+"").trigger('create'); 
     return false; 
    } 
});