2012-02-08 69 views
1

我從本地存儲拉取JSON數據,並使用grep根據選定的ID過濾掉所需的項目。然後我將過濾後的集合轉換成「LI」項目,然後將它們附加到UL容器中。 UL容器的data-inset屬性設置爲yes。當我申請列表視圖(「刷新」)的「UL」插圖的外觀和感覺不適用(在第一項和最後一項圓角jQuery Mobile listview刷新不適用插入外觀

這裏是我的代碼:

var categoryId = 1;     
    var data = JSON.parse(... data from localstorage...); 

    //FILTER OUT DATA FOR THE SELECTED CATEGORY 
    data = $.grep(data, function(el, i) 
    { 
     if (el.CategoryId == categoryId) 
      return el; 
    }); 

    //BUILD LI ELEMENTS FROM FILTERED LIST 
    var categoryListItems = []; 
    $.each(data, function(i, item) 
    { 
     categoryListItems.push('<li data-category-id="' + item.CategoryId + '" data-id="' + item.ListId + '">' + item.ListName + '</li>'); 
    }); 

    $('ul#CategoryList li').remove(); 
    $('ul#CategoryList').append(categoryListItems.join('')).listview("refresh"); 

縱觀產生HTML中,CSS類「ui-corner-top」和「ui-corner-bottom」在刷新後沒有得到應用。這些是圍繞inset外觀的第一個和最後一個li元素的拐角處的類。

關於爲什麼這些類沒有得到應用的任何想法?

回答

4

嘗試使用這個

$('ul#CategoryList').append(categoryListItems.join('')).listview("refresh", true); 
+1

附加的真實參數保持舍入效果。 – Chris 2012-04-04 08:20:52

0

添加該代碼列表視圖之後刷新

$("#pageid").trigger("create");//pageid is the id of the page which has the listview.

這將迫使所有的jQuery Mobile的樣式重新應用越來越重建頁面。

+0

感謝您的建議,但沒有有所作爲。我把$(「#pageid」)。trigger(「create」);在listview刷新調用之後。 – 2012-02-08 14:29:23

+0

你必須用代碼片段中的pageid替換你用於頁面的任何id(data-role ='page')。例如:如果id是categorypage,你應該使用$(「#categorypage」)。 (「創建」); – user700284 2012-02-08 15:08:52