2011-11-22 63 views
1

因此,如果存在一定數量的LI,我想將數據過濾器添加到UL。我得到attr添加正確,但沒有顯示在頁面上。將代碼中的'數據過濾器'添加到UL中,但沒有顯示在頁面

else 
       { 
        $('#presentations').attr("data-filter", "true"); 
         $('#presentations').html(''); 
           for (var i = 0; i < results.rows.length; i++) { 
             $('#presentations').append(
             '<li><a href="javascript: loadPresentation(\'' + results.rows.item(i).presentName + '\';");">' + results.rows.item(i).presentName + '</a>' 
            + '<a href="javascript: deleteConfirm(\'' + results.rows.item(i).presentName + '\');">delete</a></li>'); 
            } 
            } 
           $('#presentations').listview('refresh'); 
           $.mobile.changePage($('#dashboard'), {reloadPage: "true"}); 
           $('#dashboard .message').text('Your presentations'); 
          } 

我猜它是一個緩存問題,但我無法弄清楚如何解決它。幫幫我?

回答

5

我試着重新初始化,重新創建或刷新列表視圖,但沒有任何作品。

我能得到它的工作的唯一方式是通過做:

$('#listview').listview('option', 'filter', true); 
    $('#listview').trigger("listviewcreate"); 

所以你觸發手動的listviewcreate事件而在這之前,你的過濾器設置爲true。 (與attr(), data() or jqmData()設置也不起作用)

例子: http://jsfiddle.net/N7Z9e/143/

+2

FREAKING phenomenal!非常感謝你......沒有人能夠爲我回答這個問題。我必須在示例中添加一件事情,我仍然必須在觸發器之前調用refresh來獲取LI項目以獲取JQmobile的樣式。但這是答案。再次感謝!!! –

0

這裏是行動的代碼 - 感謝Gerjan!

else { 
      // don't create duplicate/double filter 
      $(".ui-listview-filter").remove(); 
      if (results.rows.length > 3) { //Add filter search if more than 3 presentations. 
        $('#presentations').listview('option', 'filter', true); 
      } 
      $('#presentations').html(''); 
      for (var i = 0; i < results.rows.length; i++) { 
        $('#presentations').append(
           '<li><a href="javascript: loadPresentation(\'' + results.rows.item(i).presentName + '\');">' + results.rows.item(i).presentName + '</a>' 
          + '<a href="javascript: deleteConfirm(\'' + results.rows.item(i).presentName + '\');">delete</a></li>' 
       ); 
      } 
      $('#presentations').listview('refresh'); 
      $('#presentations').trigger("listviewcreate"); 
      $.mobile.changePage($('#dashboard'), { reloadPage: "true" }); 
      $('#dashboard .message').text('Your presentations'); 
      } 
相關問題