使用jquery mobile设置RSS提要

时间:2013-02-28 18:02:15

标签: jquery cordova mobile rss jfeed

我正在使用PhoneGap编写iPhone应用程序。我正在尝试解析Facebook RSS Feed并使用jFeed这样做。我得到了Feed,我可以将它显示给用户。然而,当谈到样式化RSS Feed以使其看起来很好(使用JQuery Mobile CSS属性)时,它没有考虑属性(ul和li标记)。 有没有办法使用JQuery Mobile设置RSS Feed的样式? 这是我正在使用的代码(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 个答案:

答案 0 :(得分: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);此代码之后添加代码以刷新listview。因为jquery移动标记是在pagecreate时生成的。在您的情况下,您是动态获取数据并构建列表视图。因此,您必须通过uisng .listview( "refresh" )

刷新列表视图

修改后的代码如下:

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

有关jquery mobile中listview的更多信息。
参考:http://jquerymobile.com/demos/1.2.0/docs/lists/lists-methods.html