Стилизация RSS-каналов с помощью jquery mobile

Я пишу приложение для iPhone с PhoneGap. Я пытаюсь проанализировать RSS-канал Facebook и использовать для этого jFeed. Я получаю канал и могу отображать его пользователю. Однако, когда дело доходит до стилизации RSS-канала, чтобы он выглядел хорошо (используя атрибуты JQuery Mobile CSS), он не учитывает атрибуты (маркеры ul и li). Есть ли способ стилизовать RSS-канал с помощью JQuery Mobile? Вот код, который я использую (index.html):

<!DOCTYPE html> 
<html> 
<head> 
<title>BDA Audencia</title> 
<meta charset="utf-8" />
<meta content="yes" name="apple-mobile-web-app-capable">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1,
minimum-scale=1, width=device-width, height=device-height, 
target-densitydpi=device-dpi" />
<!-- JQUERY CSS -->
      <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
     <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />

<!-- CORDOVA - PHONE GAP -->
<script type="text/javascript" src="cordova-2.4.0.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<link rel="stylesheet" href="style/site.css">

<!-- RSS FEED -->
<script type="text/javascript" src="js/jquery.jfeed.pack.js"></script>
      <script>

          jQuery(function() {

                 jQuery.getFeed({
                                url: 'http://www.facebook.com/feeds/page.php?id=360453900718092&format=atom10',
                                success: function(feed) {


                                var html = '';

                                for(var i = 0; i < feed.items.length && i < 5; i++) {

                                var item = feed.items[i];

                                html += '<li data-role="list-divider"><span style=" right: 45px;position: absolute; font-size: 11px; font-weight: bold; padding: .2em .5em; top: 50%; margin-top: -.95em;; right: 10px;">'
                                + item.updated
                                + '</span></li>'
                                + '<li>'
                                + item.description
                                + '</li>';


                                }
                                html += html + '';
                                jQuery('#result').append(html);
                                }    
                                });
                 });

        </script>
    <!-- Changing the position of this code will not make $.mobile.defaultPageTransition work. DO NOT CHANGE IT -->
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
</head> 
<body>


<div data-role="page" id="index">
<div data-role="header" data-position="fixed">
<h1>Test RSS</h1>
</div>

<div data-role="content">   
        <div class="content-primary">
            <ul data-role="listview" data-theme="d" data-divider-theme="d">
            <div id="result"></div>
                </ul>
                </div>
</div>

<div data-role="footer" data-theme="d">
</div>
</div><!-- /page one -->

1 ответ

Решение

div прямо внутри ul неверная структура HTML.

<ul data-role="listview" data-theme="d" data-divider-theme="d">
  <div id="result"></div>
</ul>

Пожалуйста, измените его, как показано ниже

<ul id="result" data-role="listview" data-theme="d" data-divider-theme="d">
</ul>

Затем после jQuery('#result').append(html); этот код, добавьте код для обновления списка. Потому что мобильный маркер jquery был сгенерирован при создании страницы. В вашем случае вы динамично получаете данные и строите просмотр списка. Итак, вы должны обновить просмотр списка по uisng .listview( "refresh" )

Пересмотренный код должен выглядеть следующим образом:

$('#result').append(html);
$('#result').listview("refresh");

Больше о listview в мобильном телефоне jquery.
Ссылка: http://jquerymobile.com/demos/1.2.0/docs/lists/lists-methods.html

Другие вопросы по тегам